最近設(shè)計(jì)程序的時(shí)候,老拋出NullPointerException,ArrayOutOfIndexException異常,發(fā)現(xiàn)這些異常的拋出對(duì)程序的穩(wěn)定性是有好處的。它可以防止程序崩潰。
不過(guò)相信開(kāi)發(fā)過(guò)程序的人應(yīng)該對(duì)這些異常操作是很厭煩,有什么辦法可以避免這些操作呢?
什么時(shí)候拋出異常,什么應(yīng)該在程序里抓住異常?
比如你對(duì)一個(gè)對(duì)象的操作
java 代碼
-
- if(object == null)
- threws new NullPointerExcction("對(duì)象不應(yīng)該為空");
-
-
-
- if(object == null)
- return;
這兩種方式在設(shè)計(jì)的時(shí)候經(jīng)常使用,有些程序容許你對(duì)象為空的時(shí)候可以進(jìn)行下一步操作,有些程序則強(qiáng)制要求上一步的環(huán)境一定要建立,比如對(duì)象步能為空,資源一定要存在等。
歡迎各位高手談?wù)劗惓sw系上設(shè)計(jì)的心得,
異常設(shè)計(jì)的好可以減少很多if,witch等語(yǔ)句。
那個(gè)用戶(hù)登陸的例子來(lái)說(shuō)吧。
記得以前寫(xiě)過(guò)程式編程的時(shí)的代碼如下:
java 代碼
- int isNotExist = 1;
- int succes = 0;
- int passwordError= 2;
- int ,......
-
-
- int login(){
- ...................
- ................
- return i;
- }
采用異常處理時(shí)候
java 代碼
- class UserNotFindExecption{
- .........
- }
-
- void login() throw Exception{
- .........
- throws new UserNotFindExecption()
- }
這兩種設(shè)計(jì)方式就很考究你對(duì)異常的理解。 |