exception异常

   目录:

  • 运行时异常和检查时异常
  • 处理异常
  • 自定义异常

 

1.运行时异常和检查时异常

运行时异常即在运行时异常,即程序运行时抛出的异常。例如:

System.out.println(1/0);
String name=null;
name.length();

检查时异常,又称为非运行时异常,这样的异常必须在编程时进行处理,否则就会编译不通过。

     小结:  1.运行时异常类继承自RuntimeException;检查时异常不继承
                   2.运行时异常,程序不处理仍然可以javac;检查时异常必须进行显式处理
   

2.处理异常

          Java中对异常的处理有如下两种方式:

                1.通过trycatchfinally关键字捕获异常

                2.通过throwthrows关键字抛出异常

1.try...catch...

  try后面可以跟多重catch,但是要注意先子类后父类

  即:Exception,RuntimeException必须放在ArithmeticException,NullPointerException这些后面

2.try...finally...

无论try语句块是否异常,finally语句块中代码都会正常执行。例如

         try {
			System.out.println(1/0);
		}finally {
			System.out.println("234");
		}

    最后是可以输出234的

3.throw

   throw在方法体中:

  throw在代码块中;

     如果代码块中抛出的异常对象是由检查时异常创建的,则必须使用try-catch进行处理

 

4.throws

      什么时候使用throws:
  1.当方法体中的throw关键字抛出由检查时异常创建的对象时,如果该异常对象在抛出的同时已经通过try-catch进行了处理,则       可以不使用throws,否则必须使用throws抛出创建该对象的异常类或其父类。
  2.所调用的方法抛出了检查时异常时,如果该方法在调用的同时已经通过try-catch进行了处理,则可以不使用throws继续上抛         该异常,否则必须使用throws才能上抛该异常,此时上抛的异常类可以是调用方法时方法抛出的异常类也可以是其父类。
 

关于throw和throws的小结:
     1.throw抛出的是异常对象;
        throws抛出的是异常类
     2.throw 用在方法体;如果用在代码块,则在抛出检查时异常时要先try-catch
        throws用在参数列表后面
     注意:如果throw 抛出的是检查时异常对象,则必须进行处理(try-catch或者throws)
               如果抛出的是运行时异常,则可不用进行显式处理

3.自定义异常

有时我们想通过爆发异常,让人们更直观的明白问题出在哪里

 

但是空指针异常在这里有些词不达意。这时,为了使之更贴切,我们可以自定义一个AgeException异常

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值