输出
你好
fine thanks
finally无论如何都会执行,哪怕在return后面,这是一个知识点,要记住
如果try语句块中的代码抛出了异常,程序会跳转到与之匹配的catch语句块中进行处理。catch语句块中的代码会被执行,用于对异常进行处理。
如果try语句块中的代码没有抛出异常,catch语句块会被跳过。
无论try语句块中的代码是否抛出异常,finally语句块中的代码都会被执行。finally语句块中的代码通常用于释放资源和清理操作,比如关闭文件、网络连接等。
如果catch语句块中的代码成功处理了异常,程序会跳过finally语句块并继续执行下一条语句。如果catch语句块中的代码没有成功处理异常,程序会执行finally语句块后再次抛出异常。
不知道你这个问题是否已经解决, 如果还没有解决的话:throw的作用:抛出一个异常,并且抛出的是一个异常类的实例化对象,且在异常处理时,try语句要捕获一个异常对象,也可以自行抛出
使用throw语句抛出错误后,仍然会出现异常,这是因为throw语句只是抛出了异常,但并没有处理异常,需要使用try-catch语句来捕获并处理异常,或者在方法声明上使用throws关键字声明要抛出的异常,让调用该方法的上级程序来处理异常。
如果希望在代码中正确地抛出错误而不是异常,可以手动抛出自定义的异常类对象,通过继承相关的异常类来实现自定义异常类,并在其中编写需要抛出的错误信息。然后在代码中使用throw关键字抛出自定义异常类对象,即可正确地抛出错误。示例代码如下:
自定义异常类:
public class MyException extends Exception{
public MyException(String message){
super(message);
}
}
抛出自定义异常类对象:
public static void main(String[] args){
try {
throw new MyException("抛出自定义错误");
} catch (MyException e) {
e.printStackTrace();
}
}
另外,要注意区分throw和throws的使用,throw用于方法内部,表示手动抛出异常;throws用于方法声明上,明确告诉用户本方法可能产生的异常,同时该方法可能不处理此异常。调用声明了throws的方法时,必须使用try-catch语句捕获异常或继续向上级程序抛出异常。