我有兩個不同的類共享一個共同類型的屬性(IpAddress
,其中也包含有關該子網的所有信息)。現在,IpAddress
是一個用戶定義類型,我有一個函數setSecondaryRouter()
,它可以改變這種類型的屬性。爲了讓程序按預期運行,我需要一個不變量(或者2個不變量)。這在功能setSecondaryRouter()
中檢查。但是,我想將此屬性secondaryRouter
設置爲與第一個對象相同。這種暗示不變已經在我第二次使用setSecondaryRouter()
。由於這個原因,我知道這個函數不會拋出。我可以防止java拋出某些異常嗎?
問題是我的編譯器「幫助」確保沒有未編譯的未捕獲的異常,除非添加try-catch子句或添加一個throws聲明調用者函數(從而幫助解決一個不存在的問題)。我想要做的是告訴Java,這個異常不會被拋出。將此與C++中的nothrow
關鍵字進行比較。我知道類似的問題都已經發布,像下面
Is there any standard annotation to indicate nothrow semantics in Java?
但我的問題的不同點在於,我不希望添加一拋,或嘗試-catch子句,而我知道會不會被拋出特定的異常!
另外一個表達式是IllegalArgumentException。這個例外可以成爲我必須處理例外的原因嗎?
使它們檢查異常。然後,它沒有被方法拋出的事實意味着它不會被方法拋出。 –
@AndyTurner所以即使我知道運行時異常將不得不處理它? – patrik
沒有。您不必處理未檢查的異常;你不能保證他們不會被拋出。 –