## 一、异常的继承树 ![mermaid-1759146869423.png][1] 只有RuntimeException为运行时异常,可处理可不处理,其他为非运行时异常,必须进行try捕获处理,否则编译不通过! ## 二、异常处理方式 #### 1、立即捕获 ```java try{ 可能出现异常的代码; } catch (XXXException e){ 处理方法; } finally { 无论有无异常都运行此块内的代码; } ``` 注意: try必须有一个,try中可以重复嵌套多个try-catch-finally语句; catch必须至少有一个,在多个catch中异常从上往下大小(继承关系)应该排列为从子类到父类; finally可以省略,但不能单独出现。 #### 2、向上抛出异常 throws ```java public void methodName(type args...) throws XXXException,XXXException...{ code; } ``` #### 3、声明异常 throw ```java throw new XXXException("异常信息"); ``` ## 三、如何自定义异常 ```java // 继承父类并重写构造方法即可 class MyException extends Exception{ public MyException(String msg){ super(msg); } } ``` ## 四、笔记、代码附件 [香肠狗网盘][2] [1]: https://www.soki.me/usr/uploads/2025/09/1114868765.png [2]: https://pan.soki.me/s/zOuD Loading... ## 一、异常的继承树 ![mermaid-1759146869423.png][1] 只有RuntimeException为运行时异常,可处理可不处理,其他为非运行时异常,必须进行try捕获处理,否则编译不通过! ## 二、异常处理方式 #### 1、立即捕获 ```java try{ 可能出现异常的代码; } catch (XXXException e){ 处理方法; } finally { 无论有无异常都运行此块内的代码; } ``` 注意: try必须有一个,try中可以重复嵌套多个try-catch-finally语句; catch必须至少有一个,在多个catch中异常从上往下大小(继承关系)应该排列为从子类到父类; finally可以省略,但不能单独出现。 #### 2、向上抛出异常 throws ```java public void methodName(type args...) throws XXXException,XXXException...{ code; } ``` #### 3、声明异常 throw ```java throw new XXXException("异常信息"); ``` ## 三、如何自定义异常 ```java // 继承父类并重写构造方法即可 class MyException extends Exception{ public MyException(String msg){ super(msg); } } ``` ## 四、笔记、代码附件 [香肠狗网盘][2] [1]: https://www.soki.me/usr/uploads/2025/09/1114868765.png [2]: https://pan.soki.me/s/zOuD 最后修改:2025 年 10 月 13 日 © 允许规范转载 打赏 赞赏作者 支付宝微信 赞 👆请简单粗暴地爱我。