黑马程序员_java 异常之throws、throw 和 RuntimeException

 ---------------------- android培训java培训、期待与您交流! ----------------------

继承Exception原因:
异常体系有一个特点:因为异常类和异常对象都被抛出。
他们都具备可抛性,这个可抛性是Throwable这个体系中独有特点。

只有这个体系中的类和对象才可以被throw和throws操作。

 throws和throw区别
  
   throws使用在函数上
   throw使用在函数内
  

   throws后面跟的异常类。可以跟多个,用逗号隔开
   throw后跟是异常对象。


案例: 


class Demo
{
 int plus(int a,int b)
 {
  if(b==0)
     throw new ArithmeticException("被零除了");
  return a/b;
 }
}

class ExceptionDemo
{
 public static void main(String[] args)
 {
  Demo d = new Demo();
  int x = d.plus(3,0);
  System.out.println("x=" + x);
 }
}

在这里发现ArithmeticException这个异常非常特殊,在函数内抛了不用在函数上声明

Exception 中有一个特殊的子类异常RuntimeException  运行时异常。
如果在函数内抛出异常,函数上可以不用声明,编译一样通过。

如果在函数上声明了异常,调用者可以不用进行处理,编译一样通过。

之所以不用在函数上声明,是因为不需要上调用者处理,
当该异常发生,希望程序停止。因为在运行时,出现了无法继续运算的情况,希望停止程序后,对代码进行修正。


自定义异常时,如果该异常的发生,无法在继续进行运算,
就让自定义异常继承RuntimeException。

           public Test() throws RepletException {
           try {
            System.out.println("Test this Project!")
         }
      catch (Exception e) {
        throw new Exception(e.toString());
           }
     }

throws是用来声明一个方法可能抛出的所有异常信息。
throw则是指抛出的一个具体的异常类型。
通常在一个方法(类)的声明处通过throws声明方法(类)可能抛出的异常信息,而在方法(类)内部通过throw声明一个具体的异常信息。
throws通常不用显示的捕获异常,可由系统自动将所有捕获的异常信息抛给上级方法。
throw则需要用户自己捕获相关的异常,而后在对其进行相关包装,最后在将包装后的异常信息抛。

---------------------- android培训java培训、期待与您交流! ----------------------

详细请查看:http://edu.csdn.net/heima

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值