【知了堂学习笔记】java 自定义异常

 java 常见异常种类(Java Exception):

算术异常类:ArithmeticExecption

空指针异常类:NullPointerException

类型强制转换异常:ClassCastException

数组负下标异常:NegativeArrayException

数组下标越界异常:ArrayIndexOutOfBoundsException

违背安全原则异常:SecturityException

文件已结束异常:EOFException

文件未找到异常:FileNotFoundException

字符串转换为数字异常:NumberFormatException

操作数据库异常:SQLException

输入输出异常:IOException

方法未找到异常:NoSuchMethodException

常见异常类为两大类型Throwable是java异常的根类分为两大子类Error和Exception, Error类代表了编译和系统的错误,不允许捕获;Exception类代表了标准Java库方法所激发的异常。Exception类还包含运行异常类Runtime_Exception和非运行异常类Non_RuntimeException这两个直接的子类。

今天主要谈谈自定义异常

为什么要自定义异常

我们不可能期待JVM(Java虚拟机)自动抛出一个自定义异常,也不能够期待JVM会自动处理一个自定义异常。所以发现异常以及异常处理还是得我们自己完成。所以我们要想做好一件事得先了解它是怎么产生的。

自定义异常的实例:

package text;

//自定义一个异常继承RuntimeException异常

public class Exception extends RuntimeException {
    public Exception() {
        super("自定义一个异常类");
    }
}

// 模拟服务器异常登录

public class ConnectionServer {
    private final String ID = "123456";
    private final String password = "guoxiao";

    public void connect(String ID, String password) throws Exception {
        if (this.ID != ID || this.password.equals(password)) {
            throw new Exception();

            // 模拟失败过程然后方法内部抛出异常
        }
    }
}

// 模拟登录过程

public class LoginText {

    public static void main(String[] args) {
        LoginText laozhu = new LoginText();
        laozhu.login("556ssa", "553xha");

        // 创建一个老朱对象,然后登陆,让服务器返回一个异常。
    }

    public void login(String ID, String password) {
        ConnectionServer connectionServer = new ConnectionServer();
        try {
            connectionServer.connect(ID, password);
        } catch (Exception e) {
            System.out.println(e.getMessage());
        }
    }

}

不用try{ }catch(){}处理的输出结果

用try{}catch(){}处理的输出结果

www.zhiliaotang.com 请关注知了堂学习更多的java知识

原文地址:https://www.cnblogs.com/pipixiao/p/7419902.html