异常的回想

程序错误

-编译错误(compilation error

-运行时错误(rentime erroe)

-逻辑错误(logic error)

异常(exception:程序运行时出现的非正常情况,它中断正常的程序控制流

Java给程序员提供了处理的运行时错误的功能,即异常处理

异常类:用java累表示异常情况,可扩展,可重用

java中,处理异常的5个关键字:

   -try:捕捉异常

   -catch:处理异常

   -finally:不管try块中的代码如何退出,都将执行finally

   -throw:抛出异常

   -throws:声明异常

一个try后面可以跟多个catch

Try后面只能有一个finally

Tryfinally之间可以没有catch

Throws:如果一个方法不想处理异常,就可以通过throws语句讲异常抛向上级调用方法。

 

Throw:用于抛出异常,throw语句抛出的对象比较是java.lang.Throwable类或者子类的实例

 

Finally语句不被执行的唯一情况:

Sysem.exit(0);用于立即终止程序的运行

FinallySystem.out.println(“without execute”);不会被执行

因此System.out,.println(execute);也不被执行

运行时异常

RuntimeException类及其子类都成为运行时异常。

特点:java编译器不会检查它

当程序可能出现异常,即使没有try-catch或者throws,编译也会通过

 

Return x/y;y0,抛出ArithmeticException

区分运行时异常和受检查异常

运行时异常表示无法让程序恢复运行的异常(原因:通常是由于执行了错误的操作)

例如:出现数组越界,需要修改代码,因此出现运行时异常,建议终止程序,java编译器不检查这种异常

受检查异常表示程序可以处理的异常,如果抛出异常的方法本身不能处理它,那么方法调用者应该去处理它,从而使程序恢复运行,不至于终止程序。

如果一个方法可能出现受检查异常,要么要try-catch语句捕获,要么用throws子句声明将它抛出,否则会导致编译错误

 

常见异常:

Arithmeticexception:数学异常

 如:inta,b;

     a=0;

     b=50/a;

IndexOutOfBoundException:数组越界异常

 如:public void addNum(int[] a){

Int b=0;

For(int i=0;i<=a.lenght;i++){

B=b+a[i];

}

}

便出现异常

NullPointerException:空指针异常

例如:

Date today=null;

System.out.println(today.toString());

 

SQLException :SQL异常

例如:

Ps=con.prepareStatement(“select * from user where userid=?”);

Rs=ps.executeQuery();

获取异常信息

Exception提供一些方法以便获取异常信息

toString()

getMessage()

printStackTrace()

通过扩展Exception或其子类来创建自己的异常类

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值