JAVA 异常处理

目录

一、异常

1.1异常的概述

1.2异常的体系结构

 1.3编译时异常和运行时异常的区别

 1.4JVM默认异常处理的方式

二、throws方式处理异常

2.1定义格式:

2.2注意事项:

三、throw抛出异常

3.1格式:

3.2注意事项

3.3 throws和throw的区别

四、try-catch方式处理异常

4.1定义格式

4.2执行流程

 4.3注意事项

五、Throwable成员方法

5.1常用方法

六、自定义异常

6.1概述

6.2实现步骤


一、异常

1.1异常的概述

        异常就是程序出现了不正常情况

1.2异常的体系结构

JAVA 异常处理_第1张图片

 1.3编译时异常和运行时异常的区别

编译时异常:

- 都是Exception类及其子类
- 必须显示处理,否则程序就会发生错误,无法通过编译

运行时异常

- 都是RuntimeException类及其子类
- 无需显示处理,也可以和编译时异常一样处理

 JAVA 异常处理_第2张图片

 1.4JVM默认异常处理的方式

        如果程序出现了问题,我们没有做任何处理,最终JVM 会做默认处理,处理方式有如下两个步骤:

- 把异常的名称,错误原因及异常出现的位置等信息输出在了控制台
- 程序停止执行

二、throws方式处理异常

2.1定义格式:

public void 方法名()throws 异常类名{

}

2.2注意事项:

 - 这个throws格式是跟在方法的括号后面的
- 编译时异常必须要进行处理,两种处理方案:try...catch …或者 throws,如果采用 throws 这种方案,在方法上进行显示声明,将来谁调用这个方法谁处理
- 运行时异常因为在运行时才会发生,所以在方法后面可以不写,运行时出现异常默认交给jvm处理

三、throw抛出异常

3.1格式:

throw new 异常();

3.2注意事项

         这个格式是在方法内的,表示当前代码手动抛出一个异常,下面的代码不用再执行了

3.3 throws和throw的区别

throws throw
用在方法声明后面,跟的是异常类名 用在方法体内,跟的是异常对象名
表示声明异常,调用该方法有可能会出现这样的异常 表示手动抛出异常对象,由方法体内的语句处理

四、try-catch方式处理异常

4.1定义格式

try {
    可能出现异常的代码;
} catch(异常类名 变量名) {
    异常的处理代码;
}

4.2执行流程

- 程序从 try 里面的代码开始执行
- 出现异常,就会跳转到对应的 catch 里面去执行
- 执行完毕之后,程序还可以继续往下执行

 4.3注意事项

1. 如果 try 中没有遇到问题,怎么执行?

   会把try中所有的代码全部执行完毕,不会执行catch里面的代码

2. 如果 try 中遇到了问题,那么 try 下面的代码还会执行吗?

   那么直接跳转到对应的catch语句中,try下面的代码就不会再执行了
   当catch里面的语句全部执行完毕,表示整个体系全部执行完全,继续执行下面的代码

3. 如果出现的问题没有被捕获,那么程序如何运行?

   那么try...catch就相当于没有写.那么也就是自己没有处理.
   默认交给虚拟机处理.

4. 同时有可能出现多个异常怎么处理?

   出现多个异常,那么就写多个catch就可以了.
   注意点:如果多个异常之间存在子父类关系.那么父类一定要写在下面

五、Throwable成员方法

5.1常用方法

方法名 说明
public String getMessage() 返回此 throwable 的详细消息字符串
public String toString() 返回此可抛出的简短描述
public void printStackTrace() 把异常的错误信息输出在控制台

六、自定义异常

6.1概述

         当Java中提供的异常不能满足我们的需求时,我们可以自定义异常

6.2实现步骤

1. 定义异常类
2. 写继承关系
3. 提供空参构造
4. 提供带参构造

你可能感兴趣的:(java,开发语言)