在這個硬體成本不算高的年代,記憶體的使用通常都略微不那麼謹慎;往往在宣告數字型別時不會太謹慎(還是剛好我遇到的都…),例如只有short 需求卻宣告成 int 這種狀況屢見不鮮。
若要好好地控制記憶體使用量,避免溢位的需求就要特別注意,尤其這種狀況通常發生在執行期,log也可能也無法完整紀錄當時狀況,因此 Checked 語法就派上用場了。
1 | short shortNumber = 32767; |
顯示結果如下:
1 | Org short number: 32767 |
明明只有加1卻出現了意想不到的數字。為了避免這種情況發生,可以使用Checked語法來做檢查,至少如果有問題會先彈出exception。
1 | Console.WriteLine($"Plus 1 to short number:{checked(shortNumber+=1)}"); |
結果是直接跳出exception並告知以下結果:
1 | Unhandled Exception: System.OverflowException: Arithmetic operation resulted in an overflow. |
當然我們也可以預先使用try catch來攔截相關的錯誤