我在想,如果有一個更美觀/更容易閱讀的方式來寫:增加此try-catch中的可讀性?
for (int i = 0; i < 100; i++)
{
// If m.GetString(i) throws an exception, continue.
// Otherwise, do stuff.
try
{
string s = m.GetString(i);
continue;
}
catch (InvalidCastException)
{
}
// do stuff with the message that you know is not a string.
}
這裏併購的樣子:
msg[0] = 10
msg[1] = "string"
msg[2] = 2.224574743
// Etc.
// Assume it's different every time.
因此,因此,當我在這個例子做m.GetString(0)
它會拋出異常,因爲msg[0]
是uint
而不是string
。這是我用來獲取類型,因爲m
不包含GetType,我不能編輯m。
m是我無法編輯的庫中的類Message
的實例。
但是,儘管這樣工作得很好,但爲了獲得類型,它有意無效地(並且不是讀者友好的)故意創建異常,即使它在try-catch
中。
有沒有更好的方法,還是我堅持這個?
編輯︰好吧,我研究了Message
類更多(我應該做的開始,我的道歉)。這是一個IEnumerable<object>
如果你可以避免這個異常,你應該..異常增加開銷 – 2013-05-29 14:58:30
你應該找出m.GetString()拋出什麼類型的異常(假設你不能訪問它後面的代碼並且無例外地處理它)那麼只能捕獲那種類型的異常。捕捉每個可能的異常並繼續不好 –
'm'的類型是什麼? –