java面向对象:异常的捕获与处理

java面向对象:异常的捕获与处理

一 异常的定义:

程序运行过程中发生的意外

二、异常处理格式

try {
	有可能出现的异常语句
}catch (异常类  对象) {
	异常的处理语句
}......
finally {
	异常的统一出口
}

以上的三个关键字出现的组合可以有三种:(catch可以一次出现多个)
try…catch
try…finally
try…catch…finally
如何取得异常的完整信息? 用printStackTrace();方法

try {
	System.out.println(10/0);
}catch(ArithmeticException e) {
	e.printStackTrace();
}

三、throws关键字和throw关键字

**throws:**声明异常
1 在方法定义时,若该方法出现异常后,不希望进行处理,就使用throws抛出。
2 若已经调用了throws声明的方法,那么在调用时必须明确使用try…catch进行异常捕获,因为该方法有可能产生异常。
3 主方法也是方法,也可以用throws进行异常抛出,这时若产生异常,会交给JVM进行处理。

class Person{
 public static int div(int x;int y)throws Exception{
  return x/y;
 }
}
public class Demo{
    public static void main(String[] args) { 
     try {
      System.out.println(Person.div(10/2));
     }catch(Excepyion e) {
      e.printStackTrace();
     }
    }
 }

throw:抛出异常

public class Demo{
    public static void main(String[] args) { 
     try {
      throw new Exception("抛出");
     }catch(Excepyion e) {
      e.printStackTrace();
     }
    }
 }

四 异常处理的执行顺序

1 try-catch-后续代码
A;有异常 try–>catch–>后续代码
B:无异常 try–》后续代码
2 try–catch–>finally–》后续代码
A:有异常: try–catch–>finally–》后续代码
B:无异常: try–>finally–》后续代码
ps:如果try或者catch中有return做为返回值 则方法的返回值会提前出结果 但是finally继续执行

五 异常分类

1 throwable:
异常Exception和错误Error的父类
2Error:
错误 程序当中无法靠自身解决的严重问题
3 Exception:
程序运行中的意外情况
4 异常的两个子类
A:检查异常:SqlException/ClassNotFoundException
B:运行异常:算术异常,数据转换异常 空指针,输入类型不匹配…

六 多重catch的注意事项

1 捕获异常的顺序自上而下 某个异常执行完 其他异常会直接跳过
2 异常类型的摆放顺序必须是先子类后父类

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值