一:背景 1. 講故事 在項目中摸爬滾打幾年,應該或多或少的見過有人把異常當做業務邏輯處理的情況(┬_┬),比如說判斷一個數字是否為整數,就想當然的用 包起來,再進行 ,如果拋異常就說明不是整數,簡單粗暴,也不需要寫正則或者其他邏輯,再比如一個字元串強制轉化為Enum,直接用 ,可能是因為對異常的開 ...
一:背景
1. 講故事
在項目中摸爬滾打幾年,應該或多或少的見過有人把異常當做業務邏輯處理的情況(┬_┬),比如說判斷一個數字是否為整數,就想當然的用try catch
包起來,再進行 int.Parse
,如果拋異常就說明不是整數,簡單粗暴,也不需要寫正則或者其他邏輯,再比如一個字元串強制轉化為Enum,直接用Enum.Parse
,可能是因為對異常的開銷不是特別瞭解,這種不好的使用習慣也許被官方發現了,後續給我們補了很多的Try首碼的方法,比如:int.TryParse
, Enum.TryParse
, dict.TryGetValue
,用代碼展示如下:
//原始寫法
var num = int.Parse("1");
//使用try方式
var result = 0;
var b = int.TryParse("1", out result);
用Try系列方法沒毛病,但這寫法讓人吐槽,還要單獨定義result變數,沒撤,官方還得靠我們這些開發者給他們發揚光大