java异常处理机制原理
来源:Java异常处理机制 2018-03-07异常就是在程序的运行过程中所发生的不正常的事件, 它会中断正在运行的程序,面对异常该怎么办呢?通常情况下, 我们会这样处理:
Java编程语言使用异常处理机制为程序提供了错误处理的能力异常处理机制抛抓模型
运行的代码先抛出异常: 放在try{}块中
然后捕获抓取异常: catch(异常类型 异常对象)
最后再进行异常处理: catch{}块中进行处理
Java中如何进行异常处理
Java的异常处理是通过5个关键字来实现的:
try执行可能产生、 catch捕获异常、 finally无论是否发生异常,代码总能执行、 throw手动/显式、 throws抛出异常
示例:
public void method(){
try {
// 代码段 1
// 产生异常的代码段 2
// 代码段 3
} catch (异常类型 ex) {
// 对异常进行处理的代码段4
}//
代码段5
}finally{
//无论是否有异常都会执行的代码段6
}
try-catch异常处理流程
异常是一种特殊的对象, 类型为java.lang.Exception或其子类发生异常printStackTrace的堆栈跟踪功能显示出程序运行到当前类的执行流程
java.util.InputMismatchException //异常类型
at java.util.Scanner.throwFor(Scanner.java:840) //异常堆栈信息
at java.util.Scanner.next(Scanner.java:1461) //在此方法中抛出了异常
at java.util.Scanner.nextInt(Scanner.java:2091)
at java.util.Scanner.nextInt(Scanner.java:2050)
at cn.jbit.exception.Test3.main(Test3.java:15)// 出现异常的位置
在catch块中处理异常,可以加入用户自定义处理信息,通过调用异常对象的方法输出异常信息:
e.printStackTrace();
System.err.println("出现错误: 被除数和除数必须是整数," + "除数不能为零。 ");
void printStackTrace()输出异常的堆栈信息
String getMessage()返回异常信息描述字符串,是printStackTrace()输出信息的一部分
方 法 名 | 说 明 |
Exception | 异常层次结构的根类 |
ArithmeticException | 算术错误情形, 如以零作除数 |
ArrayIndexOutOfBoundsE xception |
数组下标越界 |
NullPointerException | 尝试访问 null 对象成员 |
ClassNotFoundException | 不能加载所需的类 |
InputMismatchException | 欲得到数据类型与实际输入类型不匹配 |
IllegalArgumentException | 方法接收到非法参数 |
ClassCastException | 对象强制类型转换出错 |
NumberFormatException |
数字格式转换异常, 如把"abc"转换成 数字 |
在try-catch块后加入finally块, 可以确保无论是否发生异常, finally块中的代码总能被执行
注意: 如果代码块中加入了System.exit(1);
强制终止程序执行语句,finally块不会执行
public class Test4 {
public static void main(String[] args) {
try {
Scanner in = new Scanner(System.in);
System.out.print("请输入被除数:");
int num1 = in.nextInt();
System.out.print("请输入除数:");
int num2 = in.nextInt();
System.out.println(String.format("%d / %d = %d",
num1, num2, num1/ num2));
} catch (Exception e) {
System.err.println(“出现错误: 被除数和除数必须是整数, "
+"除数不能为零。 ");
System.out.println(e.getMessage());
} finally {
System.out.println("感谢使用本程序! ");
}
}
}
程序中预先想好了对付异常的处理办法,如果程序运行异常!则开始对异常进行处理,处理完毕,程序继续运行,这就是java异常处理机制的原理,希望读完该文章能对你有所帮助。
最近,何猷君人气暴涨,人人都以为富家子弟只会吃喝玩乐,读书都不努力。没想到澳门赌王的小儿子何猷君在《...
叮叮当~叮叮当~,铃儿响叮当~一年一度的圣诞节降临啦!这个圣诞小编只想和你们一起......搞事情送礼物。 夜...
严寒一月,又是一年毕业时,就业已成为莘莘学子必须面对的事情。为解决我司17091javaEE就业问题,1月22日晚...
Copyright ©2004-2024 华清远见 版权所有
京ICP备16055225号,京公海网安备11010802025203号