假设有这样一个函数:
public static void Test(boolean b) throws RuntimeException{
if(b) new RuntimeException("Exception catched");
else System.out.println("Exception not catched");
}
又有这样一个函数:
public static void Test(boolean b){
if(b) new RuntimeException("Exception catched");
else System.out.println("Exception not catched");
}这两个函数的效果貌似一样,请问这一类(后面有throws xxExcepton和没有throws xxExcepton)有什么区别?两者在什么情况下用与不用?先谢谢了.
public static void Test(boolean b) throws RuntimeException{
if(b) new RuntimeException("Exception catched");
else System.out.println("Exception not catched");
}
又有这样一个函数:
public static void Test(boolean b){
if(b) new RuntimeException("Exception catched");
else System.out.println("Exception not catched");
}这两个函数的效果貌似一样,请问这一类(后面有throws xxExcepton和没有throws xxExcepton)有什么区别?两者在什么情况下用与不用?先谢谢了.
不带throws的那个函数貌似可以完成带throws的功能,那带throws中的throws ***不是多余了吗?另外,如果带throws的函数在函数体中并没有抛出异常,这样也没有警告或者错误什么的,到底两者有什么联系与区别?谢谢指教!!
当然了,要是说我就抛出RuntimeException ,但是我知道这个地方抛出的RuntimeException就表示MoneyNotEnoughException,我在调用他的时候我就直接按MoneyNotEnoughException处理,那我也确实也没什么可说的了。
另外,有的情况下,可能出错的这个类,它没有必要的资源来处理这个错误,所以抛给上一层,由上一层来处理,这是完全有可能的。但是这也常常意味着这几个类可能耦合性太强了。