一、今日学习
1.使用throws抛出异常
(1)声明抛弃异常是在一个方法声明中的throws子句中指明的。
(2)形式:[修饰符] 返回类型 方法名(参数1,参数2,...) throws 异常列表{}
(3)示例:
(4)throws字句中同时可以指明多个异常,说明方法将不对这些异常进行处理,而是声明抛弃它们。
2.通过throw抛出异常
(1)手动抛弃异常对象是通过throw语句实现的。但可以抛弃的异常必须是Throwable或其子类的实例。
(2)形式:throw 异常名;
(3)throw关键字主要是用在try块中,用来说明已经发生的异常情况。throw关键字后面跟随一个异常对象,用来说明发出的异常类型。
(4)如果方法中用throw语句抛出了异常,那么,在方法的头部必须用throws声明将要抛出的异常。
(5)示例:
3.自定义异常
(1)若要建立自己的异常类型,只要定义Exception的一个子类就可以了,子类不需要实际执行什么,它们在类型系统中的存在允许把它们当成异常使用。
(2)形式:
1 class 自定义异常 extends 父异常类名 2 { 3 类体; 4 }
(3)示例:
1 public class study{ 2 public static void main(String[] args) { 3 study s=new study(); 4 try { 5 s.add(2,3); 6 }catch(MyException e) { 7 e.printStackTrace(); 8 } 9 } 10 private void add(int a,int b) throws MyException{ 11 if(a==b) { 12 throw new MyException("输入两个数相等"); 13 } 14 } 15 } 16 class MyException extends Exception{ 17 public MyException(String msg) { 18 super(msg); 19 } 20 public MyException(String message,Throwable cause) { 21 super(message,cause); 22 } 23 public MyException(Throwable cause) { 24 super(cause); 25 } 26 }
二、遇到问题
遇到警告:The serializable class MyException does not declare a static final serialVersionUID field of type long
查阅发现,这是Eclipse提供的功能,点warning的icon两下Eclipse会自动给定,当然也可以关掉它,serialVersionUID让该类别serializable后兼容。
三、明日学习
用log4j记录异常日志信息