Java入门——day20

一、今日学习

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记录异常日志信息

原文地址:https://www.cnblogs.com/znjy/p/13378874.html