异常的捕捉和处理

本文详细介绍了Java中的异常处理机制,包括常见的异常类型如ArithmeticException、NullPointerException等,以及异常处理的关键字如try、catch、finally和throws。此外,还讲解了如何通过自定义异常来扩展异常处理,并提供了异常处理的最佳实践。通过对异常堆栈信息的打印和异常信息的获取,帮助开发者更好地理解和解决运行时问题。
摘要由CSDN通过智能技术生成

异常是指在程序的运行过程中所发生的不正常的事件,它会中断正在运行的程序

常见的异常类

异常类型

说明

Exception 

异常层次结构的父类

ArithmeticException

算术错误情形,如以零作除数

ArrayIndexOutOfBoundsException

数组下标越界

NullPointerException

尝试访问 null 对象成员

ClassNotFoundException

不能加载所需的类

IllegalArgumentException

方法接收到非法参数

ClassCastException

对象强制类型转换出错

NumberFormatException

数字格式转换异常,如把"abc"转换成数字

异常对象常用的方法

void printStackTrace()

输出异常的堆栈信息

String getMessage()

返回异常信息描述字符串,

是printStackTrace()输出信息的一部分

 

异常处理机制

Java的异常处理是通过5个关键字来实现的:try、catch、 finally、throw、throws

使用try-catch 结构进行异常捕捉和处理 把可能出现异常的代码放入try语句中 并使用catch语句捕捉异常

使用try-catch-finally 处理异常    try-catch-finally结构中try是必须存在的 catch、 finally语句块为可选 但两者必须出现一个

使用多重catch处理异常  一段代码可能会引发多种类型的异常 这是可以在一个try语句后跟多个catch语句块处理不同的异常 但排序必须是从雷子到父类 最后一个一般都是Exception类  如果把父类异常放在前面后面的catch语句块将不会获得执行机会

使用throws声明抛出异常 

通过try-catch捕捉并处理异常 通过throws继续声明异常 如果调用者不知道如何处理该异常可以继续通过throws声明异常 让上一级调用者处理异常  main()方法声明的异常将由java虚拟机来处理

使用throw抛出异常

throw关键字来自行抛出异常 抛出异常的原因在于当前环境无法解决参数问题 因此在方法内部通过throw抛出异常 把问题交给调用者去解决

throw

throws

生成并抛出异常

声明方法内抛出了异常

位于方法体内部,可作为单独语句使用

必须跟在方法参数列表后面,不能单独使用

抛出一个异常对象,且只能是一个

声明抛出异常类型,可以跟多个异常

自定义异常 

自定义异常类并继承Excepion或RuntimeException  编写异常类的结构方法并继承父类的实现 常见构造方法由4种形式 

构造方法1

public MyExcepion(){

         super();

}

构造方法2
 

public MyExcepion(String message){

           super(message);

}

构造方法3

public MyExcepion(String message,Throwable cause){

           super(message, cause);

}

构造方法4

public MyExcepion(Throwable cause){

           super( cause);

}

 

 

 

 

 

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值