50-自定义异常







自定义异常

  • 使用 java 内置的异常类可以描述在编程时出现的大部分异常情况。除此之外,用户还可以自定义异常。用户自定义异常类,只需要继承 Exception 类即可

  • 在程序中使用自定义异常类,大体可分为以下几个步骤

    1. 创建自定义异常类

    2. 在方法中通过 throw 关键词抛出异常对象

    3. 如果在当前抛出异常的方法中处理遗产古,可以使用 try-catch 语句捕获并处理;否则在方法的声明处通过 throws 关键字指明要抛出给方法调用者的异常,继续进行下一步操作

    4. 在出现异常方法的调用者中捕获并处理异常

示例


Text

public class Text {
    //可能存在异常的方法
    static void text(int a) throws MyException {
        System.out.println("传递的参数为:");
        if (a>10){
            throw new MyException(a);  //选择抛出异常
        }
        System.out.println("ok");
    }
    public static void main(String[] args) {
        try {
            text(11);
        } catch (MyException e) {
            System.out.println("MyException=>" + e);
        }
    }
}

MyException

//自定义的异常类
public class MyException extends Exception{
    private int detail;
    public MyException(int a) {
        this.detail = a;
    }
    //toString 异常的打印信息
    @Override
    public String toString() {
        return "MyException{" +
                "detail=" + detail +
                '}';
    }
}

会获得输出

传递的参数为:
MyException=>MyException{detail=11}

实际应用中的经验总结


  • 处理运行时异常时,采用逻辑去合理规避同时辅助 try-catch 处理

    因为使用 try-catch 之后,程序不会突然的卡死崩溃

  • 在多重 catch 块后面,可以加一个 `catch(Exception) 来处理可能会被遗漏的异常

    程序可能出现小异常,无法被抓到,使用 Exception 可以抓到

  • 对于不确定的代码,也可以加上 try-catch,处理潜在的异常

  • 尽量去处理异常,切忌只是简单的调用 printStackTrace() 去打印输出

    可以在其中增加一些处理异常的代码块

            try {
                text(11);
            } catch (MyException e) {
                if(a>11){
                    a--;
                }
                System.out.println("MyException=>" + e);
            }" + 
  • 具体如何处理异常,要根据不同的业务要求和异常类型去决定

  • 尽量添加 finally 语句块去释放占用的资源


暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇