書(shū)山有路勤為徑,學(xué)海無(wú)涯苦作舟
在Java中拋出異常時(shí),會(huì)將其向上傳遞給調(diào)用者,直到它被作為try/catch塊一部分的catch語(yǔ)句處理或者到達(dá)Java運(yùn)行庫(kù)并在控制臺(tái)引發(fā)一條混亂的消息。如果捕獲到異常,就應(yīng)該將異常作為一個(gè)對(duì)象傳遞給catch塊做合適的處理。同時(shí),還有一種可能需要方面作為橫切行為做一部分事情,或者替代catch塊的正常行為。 一. 捕獲何時(shí)捕捉異常 使用handler(TypePattern)切入點(diǎn)。其語(yǔ)法如下: pointcut <pointcut name>(<any values to be picked up>) : handler(<class>): handler(TypePattern)切入點(diǎn)具有5個(gè)關(guān)鍵特征: 1. handler(TypePattern)在捕獲異常的作用域內(nèi)選擇連接點(diǎn)。 2. handler(TypePattern)切入點(diǎn)的通知僅用于類(lèi)型模式指定Throwable或其子類(lèi)的地方。 3. TypePattern聲明無(wú)論何時(shí)捕捉到異常或其子類(lèi)的匹配模式,都會(huì)應(yīng)用相應(yīng)的通知。 4. handler(TypePattern)切入點(diǎn)只支持before()形式的通知。這意味著不能使用像around()這樣的通知來(lái)重寫(xiě)catch塊的正常行為。 5. TypePattern可以包含通配符,用于選擇不同類(lèi)上的一系列連接點(diǎn)。
posted on 2008-07-11 09:28 Brian 閱讀(1610) 評(píng)論(1) 編輯 收藏 所屬分類(lèi): 《AspectJ Cookbook》讀書(shū)筆記
nnn 回復(fù) 更多評(píng)論