一、异常
1、 看个实际的问题和一段代码
运行下面的代码,看看有什么问题-> 引出异常和异常处理机制
public static void main(String[] args) {
int num1 = 10;
int num2 = 0;
int res = num1 / num2;
System.out.println("
程序继续运行
....");
}
解决方案
-
异常捕获
对异常进行捕获,保证程序可以继续运行
.
//1. num1 / num2 => 10 / 0
//2.
当执行到
num1 / num2
因为
num2 = 0,
程序就会出现
(
抛出
)
异常
ArithmeticException
//3.
当抛出异常后,程序就退出,崩溃了
,
下面的代码就不在执行
//4.
大家想想这样的程序好吗
?
不好,不应该出现了一个不算致命的问题,就导致整个系统崩溃
//5. java
设计者,提供了一个叫 异常处理机制来解决该问题
//
int res = num1 / num2;
//
如果程序员,认为一段代码可能出现异常
/
问题,可以使用
try-catch
异常处理机制来解决
//
从而保证程序的健壮性
//
将该代码块
->
选中
->
快捷键
ctrl + alt + t ->
选中
try-catch
//6.
如果进行异常处理,那么即使出现了异常,程序可以继续执行
try {
int res = num1 / num2;
} catch (Exception e) {
//e.printStackTrace();
System.out.println("
出现异常的原因
=" + e.getMessage());//
输出异常信息
}
2、异常介绍
3、异常体系图
小结
4、 常见的运行时异常
常见的运行时异常包括
1) NullPointerException
空指针异常
2) ArithmeticException
数学运算异常
3) ArrayIndexOutOfBoundsException
数组下标越界异常
4) ClassCastException
类型转换异常
5) NumberFormatException
数字格式不正确异常
[]
常见的运行时异常举例
1) NullPointerException
空指针异常
NullPointerException_.java
当应用程序试图在需要对象的地方使用
null
时,抛出该异常
示例:
public class NullPointerException_ {
public static void main(String[] args) {
String name = null;
System.out.println(name.length());
}
}
2) ArithmeticException
数学运算异常
ArithmeticException_.java
当出现异常的运算条件时,抛出此异常。例如,一个整数“除以零”时,抛出此类的一个实例
,
案例演示
示例:
3) ArrayIndexOutOfBoundsException 数组下标越界异常
用非法索引访问数组时抛出的异常。如果索引为负或大于等于数组大小,则该索引为非法索引
4) ClassCastException
类型转换异常
当试图将对象强制转换为不是实例的子类时,抛出该异常。例如,以下代码将生成一个
ClassCastException
public class ClassCastException_ {
public static void main(String[] args) {
A b = new B(); //向上转型
B b2 = (B)b;//向下转型,这里是 OK
C c2 = (C)b;//这里抛出 ClassCastException
}
}
class A {}
class B extends A {}
class C extends A {}
5) NumberFormatException
数字格式不正确异常
当应用程序试图将字符串转换成一种数值类型,但该字符串不能转换为适当格式时,抛出该异常
=>
使用异常我们可以确保输入是满足条件数字
public class NumberFormatException_ {
public static void main(String[] args) {
String name = "韩顺平教育";
//将 String 转成 int
int num = Integer.parseInt(name);//抛出 NumberFormatException
System.out.println(num);//1234
}
}
5、编译异常
(1)介绍
(2)常见的编译异常
6、异常处理
(1) 基本介绍
(2)异常处理的方式
(3)示意图
7、try-catch 异常处理
(1) try-catch
方式处理异常说明
(2) try-catch方式处理异常-注意事项
(3)try-catch-finally 执行顺序小结
8、throws 异常处理
(1)基本介绍
(2)快速入门案例
(3)注意事项和使用细节