2017-01-03 57 views
0

當從二進制文件中讀取字符BinaryReader時,我經常遇到無法讀取爲字符的格式錯誤的數據。我得到了一個ArgumentException拋出。檢測無效字符

有什麼辦法,我期待下一個角色會拋出異常所以不是試圖讀取它(這會拋出異常),才能對付它沒有昂貴的操作?

BinaryReader.ReadChar();

哪些輸入導致ArgumentException拋出?

+0

[文檔](https://msdn.microsoft.com/en-us/library/system.io.binaryreader.readchar(V = vs.110)的.aspx)建議使用'ReadChars'代替。 – juharr

+0

我知道,但在閱讀單個字符時拋出相同的異常... – Karlovsky120

回答

0

啊,只是想通了:

char next = (char)reader.ReadByte(); 

if (Char.IsSurrogate(next)) { 
    return "Non-valid char value"; 
} 

隨意張貼一個更好的解決方案。