一、异常的体系结构:
* java.lang.Throwable
* |-----java.lang.Error:一般不编写针对性的代码进行处理。
* |-----java.lang.Exception:可以进行异常的处理
* |------编译时异常(checked)(即受检异常)
* |-----IOException(读写异常)
* |-----FileNotFoundException(文件路径无法找到异常)
* |-----ClassNotFoundException(类无法找到异常)
* |------运行时异常(unchecked,RuntimeException)
* |-----NullPointerException(空指针异常)
* |-----ArrayIndexOutOfBoundsException(数组下标越界异常)
* |-----ClassCastException(类转化异常)
* |-----NumberFormatException(数字格式化异常)
* |-----InputMismatchException(输入不匹配异常)
* |-----ArithmeticException(算数异常)
二、自定义异常:
1、自定义异常要求:
(1)要继承 Exception 或 RuntimeException;
(2)要定义无参构造方法与带异常信息的构造方法;
//格式: public class XXXException extends Exception 或者 RuntimeException{ //添加一个空参数的构造方法 //添加一个带异常信息的构造方法 }
2、定义异常:
(1)、编写异常类:
public class CustomException extends RuntimeException { // 空参构造方法 public CustomException() { } //带异常信息的构造方法 public CustomException(String message) { super(message); } }
(2)、使用异常:
public class OperationDemo { public static void main(String[] args) { for (int j = 0 ; j <= 100 ; j++){ if(j>= 50){ throw new CustomException("手动抛出异常"); } } } }
三、异常处理的抓抛方式:
1、方式一、手动的生成一个异常对象,并抛出(throw);
2、方式二、用户将异常抛给方法的调用者,并没真正将异常处理掉(throws);
3、方式三、抓捕并处理异常(try-catch-finally)。
三、throw与throws的区别:
1、写法上 : throw 在方法体内使用,throws 函数名后或者参数列表后方法体前
2、意义 : throw 强调动作,而throws 表示一种倾向、可能但不一定实际发生
3、throws 后面跟的是异常类,可以一个,可以多个,多个用逗号隔开。throw 后跟的是异常对象,或者异常对象的引用。
4、throws 用户抛出异常,当在当前方法中抛出异常后,当前方法执行结束(throws 后,如果有finally语句的话,会执行到finally语句后再结束。)。可以理解成return一样。
即:
throws:用于方法名之后,表示上抛异常(可以同时抛出多个异常)
throw:用于方法体中,表示手动抛出单个异常
标签:throw,构造方法,throws,-----,异常,public From: https://www.cnblogs.com/Iven-L/p/16586595.html