我有两个不同的类共享一个共同类型的属性(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
没有。您不必处理未检查的异常;你不能保证他们不会被抛出。 –