總結(jié)一下異常使用
Exception分為:Error和Exception(checkedException、uncheckedException)。在使用異常的時(shí)候可以先列出以下問(wèn)題
Exception |
Source |
Scope |
自定義異常名稱 |
會(huì)產(chǎn)生自定義異常的方法或事件 |
調(diào)用Source的方法或?qū)ο?/span> |
我認(rèn)為uncheckedException比checkedException要好,因?yàn)檫@樣可以減少代碼中try/catch語(yǔ)句,利用異常處理框架(或filter)來(lái)統(tǒng)一處理產(chǎn)生的異常。那uncheckedException與checkedException該如何劃分呢?checkedException用來(lái)處理可以預(yù)知的情況,例如已有針對(duì)返回值的不同情況,用If/else判斷。此時(shí)可以用checkedException提醒調(diào)用者對(duì)不同的情況做處理,要比調(diào)用者自己查源代碼然后做出相應(yīng)的判斷要好。uncheckedException用于拋出的異常,一般情況下是不可預(yù)知的,會(huì)導(dǎo)致系統(tǒng)錯(cuò)誤的。例如一個(gè)自定義的方法用來(lái)格式化日期,它需要一個(gè)日期型的字符串,可是偏偏系統(tǒng)傳了一個(gè)空的字段串,這種事很少發(fā)生的,所以不能拋出一個(gè)checkedException,不然會(huì)造成到處都是try/catch語(yǔ)句。此時(shí)uncheckedException就可以用了,在方法上加上@throws uncheckedException,調(diào)用者在不能確定自己傳入的參數(shù)是否合法時(shí),看到方法throw異常,就需要try/catch一下了。(@throws用來(lái)說(shuō)明的是uncheckedException)
在項(xiàng)目開(kāi)發(fā)過(guò)程中,用XDoclet+Exception來(lái)約束調(diào)用者,效果會(huì)更好一些。
posted on 2008-04-14 11:14 牛浪de流 閱讀(370) 評(píng)論(1) 編輯 收藏 所屬分類: Framework