目录
- 异常概念(Exception)
- 异常体系图(!!)
- 常见的异常
- 异常处理概念
- 异常处理分类
- 自定义异常
- throw和throws的对比
异常处理引出
package com.tao.exception_;
/**
* Create By 刘鸿涛
* 2021/12/31 13:21
*/
public class Exception01 {
public static void main(String[] args) {
int num1 = 10;
int num2 = 0;
//当执行到 num1 /num2 因为 num2 = 0,程序就会出现(抛出)异常 ArithmeticException
//当抛出异常后,程序就退出了,崩溃了,下面的代码就不再运行
//思考:这样不好,不应该出现了一个不知名的问题,就导致整个系统崩溃
//java设计者,提供了一个叫 异常处理机制来解决该问题
// int res = num1 / num2;
//如果程序员认为,这一段代码可能出现异常/问题,可以使用try-catch异常处理机制来解决
//从而保证程序的健壮性
//将该代码块 -> 选中 ->快捷键 -> ctrl + alt + t - >选中 try-catch
//如果进行异常处理,那么即使出现了异常,程序可以继续执行
try {
int res = num1 / num2;
} catch (Exception e) {
// e.printStackTrace(); //报错信息,可更改为以下内容
System.out.println("出现异常的原因 : " + e.getMessage()); //这样会好看一点
}
System.out.println("程序继续运行...");
}
}
出现异常的原因 :by zero
程序继续运行
异常基本概念
- java语言中,将程序执行中发生的不正常情况称为“异常”,(开发过程中的语法错误和逻辑错误不是异常)
- 执行过程中所发生的异常事件可分为两类
- Error(错误):Java虚拟机无法解决的严重问题。如:JVM系统内部错误、资源耗尽等严重情况。比如:*Error【栈溢出】和OOM(out of memeory),Error是严重错误,程序会崩溃。。
- Excepton:其他因编程错误或偶然的外在因素导致的一般性问题,可以使用针对性的代码进行处理。例如空指针访问,试图读取不存在的文件,网络连接中断等等,Excepiton分为两大类:运行时异常【】和编译时异常【】
异常体系图小结
异常分为两大类,运行时异常和编译时异常
运行时异常,编译器不要求强制处理的异常。一般是指编程时的逻辑错误,是程序员应该避免其出现的异常。java.lang.RuntimeException类即它的子类都是运行时异常
对于运行时异常,可以不做处理,因为这类异常很普遍,若全处理可能会对程序的可读性和运行效率产生影响
编译时异常,是编译器要求必须处置的异常