码迷,mamicode.com
首页 > 其他好文 > 详细

自定义异常

时间:2019-05-26 11:06:29      阅读:109      评论:0      收藏:0      [点我收藏+]

标签:自定义异常类   name   成功   equal   for   catch   boolean   pac   ring   

为什么需要自定义异常类

我们说了Java中不同的异常类,分别表示着某一种具体的异常情况,那么在开发中总是有些异常情况是SUN没有定义好的,此时我们根据自己业务的异常情况来定义异常类。

什么是自定义异常类:

  • 在开发中根据自己业务的异常情况来定义异常类.

异常类如何定义:

  • 自定义一个编译期异常: 自定义类 并继承于 java.lang.Exception 。
  • 自定义一个运行时期的异常类:自定义类 并继承于 java.lang.RuntimeException 。
格式:
public class XXXException. extends Exception / RuntimeException{
  添加一个空参数构造
  添加一带异常信息的构造方法
}
自定义异常
package demo02;

public class RegisterException extends Exception{

        /**
         * 空参构造
         */
        public RegisterException() {
        }

        /**
         * @param message 表示异常提示
         */
        public RegisterException(String message) {
            super(message);
        }
}

测试类

package demo02;

public class Demo {
    // 模拟数据库中已存在账号
    private static String[] names = {"bill", "hill", "jill"};

    public static void main(String[] args) {
        //调用方法
        try {
            // 可能出现异常的代码
            checkUsername("jill");
            System.out.println("注册成功");//如果没有异常就是注册成功
        } catch (RegisterException e) {
            //处理异常
            e.printStackTrace();
        }
    }

    //判断当前注册账号是否存在
    //因为是编译期异常,又想调用者去处理 所以声明该异常
    public static boolean checkUsername(String uname) throws RegisterException {
        for (String name : names) {
            if (name.equals(uname)) {//如果名字在这里面 就抛出登陆异常
                throw new RegisterException("亲" + name + "已经被注册了!");
            }
        }
        return true;
    }

}

执行结果

demo02.RegisterException: 亲jill已经被注册了!
    at demo02.Demo.checkUsername(Demo.java:22)
    at demo02.Demo.main(Demo.java:10)

 

 

自定义异常

标签:自定义异常类   name   成功   equal   for   catch   boolean   pac   ring   

原文地址:https://www.cnblogs.com/wurengen/p/10925336.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!