一、Java中如何进行异常处理
Java的异常处理是通过5个关键字来实现的:
try、catch、finally、throw、throws
try catch块
1.1
使用try-catch块捕获异常,分为三种情况,第一种情况:
try块中所有语句正常执行完毕,不会发生异常,那么catch块中的所有语句都将会被忽略
1.2
使用try-catch块捕获异常,分为三种情况,第二种情况:
try语句在执行中遇到异常,那么try块中其余剩下的代码都将被忽略,系统会自动生成相应的异常对象,如果这个异常对象与catch中声明的异常类型相匹配,则相应的catch块将会被执行
1.3
printStackTrace的堆栈跟踪功能显示出程序运行到当前类的执行流程
1.4
使用try-catch块捕获异常,分为三种情况,第三种情况:
try语句块在执行中遇到异常,如果这个异常对象与catch中声明的异常类型不匹配,程序会中断
1.5
在catch块中处理异常
加入用户自定义处理信息
异常对象常用的方法处理信息
方法名 | 说 明 |
void printStackTrace() | 输出异常的堆栈信息 |
String getMessage() | 返回异常信息描述字符串, 是printStackTrace()输出信息的一部分 |
常见的异常类型
异 常 类 型 | 说 明 |
Exception | 异常层次结构的父类 |
ArithmeticException | 算术错误情形,如以零作除数 |
ArrayIndexOutOfBoundsException | 数组下标越界 |
NullPointerException | 尝试访问 null 对象成员 |
ClassNotFoundException | 不能加载所需的类 |
IllegalArgumentException | 方法接收到非法参数 |
ClassCastException | 对象强制类型转换出错 |
NumberFormatException | 数字格式转换异常,如把"abc"转换成数字 |
代码演示
package com.oop.day10;
import java.util.Scanner;
/**
* @author: zkz
* @datetime: 2023/12/19
* @desc:使用try-catch块处理异常 代码演示
*/
public class Test {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
System.out.print("请输入被除数:");
try {
int num1 = in.nextInt();
System.out.print("请输入除数:");
int num2 = in.nextInt();
System.out.println(String.format("%d / %d = %d",
num1, num2, num1/ num2));
} catch (ArithmeticException ex) {
System.out.println("除数不能为零!");
} catch (Exception ex) {
System.out.println("错误");
}
System.out.println("感谢使用本程序!");
}
}