异常处理类型3种

    xiaoxiao2022-07-14  171

    try-catch和throw,throws的区别

    1.throw  throw 手动抛出一个异常对象,throw new Exception();

    2.throws  throws:类似于一个异常管理器,没有异常的时候就没有用,有异常的时候他会获取异常抛给上层。  throws并不是抛出一个实际的Exception而是一个异常声明,它声明这个方法可能会抛出一个异常,注意是可能,所以在没有异常的情况下也是可以用throws的,而throws本身的作用也是用来提高程序的健壮性,反过来,如果这个方法的的确确的有一个异常,那么编译器会强制让你加上throws这个异常声明。

    3.try…catch  手动检查异常并作出具体处理。  注意:处理完了之后还会继续执行,除非在处理时将异常抛给了上一级。

    public class ZeroTest {  public static void main(String[] args) {  try{  int i = 100/ 0;  System.out.print(i);  }catch(Exception e){  System.out.print(1);  throw new RuntimeException();  }finally{  System.out.print(2);  }  System.out.print(3);  }  }

    try catch是直接处理,处理完成之后程序继续往下执行,throw则是将异常抛给它的上一级处理,程序便不往下执行了。  本题的catch语句块里面,打印完1之后,又抛出了一个RuntimeException,程序并没有处理它,而是直接抛出,  因此执行完finally语句块之后,程序终止了

    首先执行try,遇到算术异常,抛出,执行catch,打印1,然后抛出RuntimeException,缓存异常,执行finally,打印2,然后抛出RuntimeException。  如果catch中没有抛出RuntimeException,则执行结果为123。

    **下面是常见的几种异常,供大家参考:

    输入输出异常:IOException  算术异常类:ArithmeticExecption  空指针异常类:NullPointerException  类型强制转换异常:ClassCastException

    操作数据库异常:SQLException

    文件未找到异常:FileNotFoundException  数组负下标异常:NegativeArrayException  数组下标越界异常:ArrayIndexOutOfBoundsException  违背安全原则异常:SecturityException  文件已结束异常:EOFException  字符串转换为数字异常:NumberFormatException  方法未找到异常:NoSuchMethodException

    最新回复(0)