前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Java(自定义异常)

Java(自定义异常)

作者头像
全栈开发日记
发布2022-05-12 20:35:51
4310
发布2022-05-12 20:35:51
举报
文章被收录于专栏:全栈开发日记全栈开发日记

子父类异常:

  • 如果父类抛出了多个异常,子类重写父类方法时,抛出和父类相同异常,或者是父类异常的子类,再或者不抛出异常
  • 父类方法没有抛出异常,子类重写父类方法也不可抛异常。如果子类发生异常,只能捕获处理,不能声明抛出
  • 父类异常什么样,子类异常就什么样;

自定义异常:

Java提供的异常类,不够我们使用的时候就需要自己定义一些异常类。

格式:

代码语言:javascript
复制
public class XXXException extends Exception/RuntimeException{
    添加一个空参构造方法
    添加一个带异常信息的构造方法
}

代码实例:

自定义异常类:

代码语言:javascript
复制
public class DemoException extends RuntimeException{
    public DemoException(){

    }
    public DemoException(String message){
        super(message);
    }
}

测试类:

代码语言:javascript
复制
public class Test {
    //1、使用数组保存已经注册过的用户名(模拟数据库)
    static String[] user={"小新","小白","风间"};
    public static void main(String[] args) {
        //2、使用Scanner获取用户的注册用户名(模拟前端)
        Scanner sc=new Scanner(System.in);
        String next = sc.next();
        booleanName(next);
    }
    //定义一个方法,对用户中注册的用户名进行判断
    public static void booleanName(String name){
        for (String str:user){
            if (str.equals(name)){
                try{
                    throw new DemoException("该用户已被注册");//必须写这一行,不然catch获取不到异常
                }catch (DemoException ex){
                    ex.printStackTrace();
                    return;//结束
                }
            }
        }
        System.out.println("注册成功");
    }
}

注意:

  1. 自定义异常类一般都是以Exception结尾,说明该类是一个异常类;
  2. 自定义异常类,必须得继承Exception或者RuntimeException
    • 如果你继承的是Exception,那么你定义的就是编译期异常类;
    • 如果你继承的是RuntimeException,那么你定义的就是运行期的异常类;

继续普及:

什么是编译期异常,什么是运行期异常?

  • 如果是编译期异常,你就必须处理这个异常才能运行这个程序,就是异常处理中的throws和try...catch;
  • 如果是运行期异常,则无需处理,交给JVM处理(中断处理);
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-03-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 全栈开发日记 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档