假設你有一個叫Timer
的班級。當用戶試圖調用方法Timer#start()
時,代碼檢查定時器是否已經啓動。如果有,那麼它不能再啓動它。現在,說這個類是庫/ API的一部分。開發人員不知道該方法沒有被不恰當地調用,所以他們想要引起關注任何不正確的調用。這樣做的兩種方式是a)打印一個簡單的錯誤消息(某某某方法不恰當地調用了方法),或者b)拋出一個異常。何時適合IllegalAccessException?
在我看來,最有意義的例外是IllegalAccessException,儘管這不是Sun所說的意圖。但是,我已經看到它在與可視性無關的情況下使用,並且只是將它拋出以引起對不良通話的注意。我的問題是,這種情況需要(哈哈,雙關語)說例外,還是有更適合它的嗎?或者,最好是創建一個新的還是隻打印一個錯誤行?
你把它和['IllegalStateException'](http://docs.oracle.com/javase/7/docs/api/java/lang/IllegalStateException.html)混淆了嗎? 'IllegalAccessException'對此沒有任何意義。 – user2357112
@ user2357112是的,這很可能是我誤解了我過去看到的異常。 – caseif