异常

异常处理的优势:能够提高java系统的健壮性。


java.lang.Throwable是所有异常类以及错误类的父类


一、Throwable有两个子类:
1、error:错误,由底层原因引起的,程序员处理不了。
2、Exception: 异常可由程序员进行处理


二、Exception的直接或间接子类
1、checked Exception已检查异常,必须处理,如果
编程时不处理,编译无法通过。
处理方法:
(1)积极的处理方式:捕获并处理异常
try{
//会抛出Exception或其子类的代码
}catch(异常的类型e){ //e代表捕获到的异常对象
e.printStackTrace(); //打印异常的栈轨迹进行调试
//异常处理的代码
throw e; //抛出异常对象
}finally{
//无论是否发生异常,最终都会执行到的语句块
//主要用于释放资源
}
(2)消极的处理方式:不进行捕获和处理,只声明抛出
在方法签名后,方法体前添加:
throws 异常的类型名称1,异常的类型2...
throws声明抛出异常的类型,抛给方法的调用者。
main(String[] args) throws Exception{}
main将异常抛给了JVM
2、RuntimeException的直接或间接子类
运行时异常,unchecked Exception未检查异常,可处理可不处理。


(1)常见的RuntimeException:
ArithmeticException算数异常 (by zero)
IndexOutofBoundsException下标越界异常
ArrayIndexOutofBoundsException数组下标越界异常
StringIndexOutofBoundsException字符串下标越界异常
ClassCastException类型转换异常
IllegalArgumentException非法参数异常
NumberFormatException数据格式异常
IllegalStatementException非法状态异常
NegativeArraySizeException定义数组长度为负数异常
NullPointerException空指针异常


三、throw和throws的区别
1、throw是一个语句,它出现在方法体中,用来抛出异常对象。
2、throws出现在方法的声明中,表示本方法可能抛出的对象的异常类型,
可以声明抛出多个类型,使用逗号分隔。
3、throws后加异常类型,throw后加的是要抛出的异常对象。
四、如何自定义异常
只需要继承Exception或者RuntimeException类
定义出1~4个重载的构造方法。
即:
public class A extends Exception{

public A(){
super();
}


public A(String msg) {
super(msg);
}


public A(String msg, Throwable cause) {
super(msg, cause);
}


public A(Throwable cause){
super(cause)
}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值