---------------------- 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培训、期待与您交流! ----------------------