当前位置: 首页 > Java培训 > JAVA开发 > java异常处理机制原理
java异常处理机制原理 时间:2018-03-07     来源:Java异常处理机制

异常就是在程序的运行过程中所发生的不正常的事件, 它会中断正在运行的程序,面对异常该怎么办呢?通常情况下, 我们会这样处理:

Java编程语言使用异常处理机制为程序提供了错误处理的能力异常处理机制抛抓模型

运行的代码先抛出异常: 放在try{}块中

然后捕获抓取异常: catch(异常类型 异常对象)

最后再进行异常处理: catch{}块中进行处理

Java异常处理机制

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异常处理机制的原理,希望读完该文章能对你有所帮助。

前台专线:010-82525158 企业培训洽谈专线:010-82525379 院校合作洽谈专线:010-82525379 Copyright © 2004-2018 北京华清远见科技发展有限公司 版权所有 ,京ICP备16055225号,京公海网安备11010802025203号