java异常的原理_java异常处理机制原理

原标题:java异常处理机制原理

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

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

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

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

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

faff966f7201df351ba52d8fb20aac07.png

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算术错误情形, 如以零作除数

ArrayIndexOutOfBoundsException数组下标越界

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

责任编辑:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值