• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
戈瑾
博客园    首页    新随笔    联系   管理    订阅  订阅
Java入门——day20
throws,throw抛出异常以及自定义异常

一、今日学习

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

posted on 2020-07-25 21:56  戈瑾  阅读(89)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3