这里的错误不是被throw出去了吗?怎么还是异常啊?

img

img


这里的错误不是被throw出去了吗?怎么还是异常啊?→_→凑30字中

输出
你好
fine thanks
finally无论如何都会执行,哪怕在return后面,这是一个知识点,要记住

如果try语句块中的代码抛出了异常,程序会跳转到与之匹配的catch语句块中进行处理。catch语句块中的代码会被执行,用于对异常进行处理。

如果try语句块中的代码没有抛出异常,catch语句块会被跳过。

无论try语句块中的代码是否抛出异常,finally语句块中的代码都会被执行。finally语句块中的代码通常用于释放资源和清理操作,比如关闭文件、网络连接等。

如果catch语句块中的代码成功处理了异常,程序会跳过finally语句块并继续执行下一条语句。如果catch语句块中的代码没有成功处理异常,程序会执行finally语句块后再次抛出异常。

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 你可以参考下这个问题的回答, 看看是否对你有帮助, 链接: https://ask.csdn.net/questions/7765597
  • 这篇博客你也可以参考下:throws和throw关键字抛出异常描述
  • 除此之外, 这篇博客: throw抛出自定义异常详解中的 throw关键字 部分也许能够解决你的问题, 你可以仔细阅读以下内容或者直接跳转源博客中阅读:

    throw的作用:抛出一个异常,并且抛出的是一个异常类的实例化对象,且在异常处理时,try语句要捕获一个异常对象,也可以自行抛出

  • 以下回答来自chatgpt:

    使用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语句捕获异常或继续向上级程序抛出异常。


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^