Java中的异常处理是必不可少的,它可以让我们的代码更加健壮,提高程序的容错性。Java抛出的异常有两种,一种是系统自带的异常,如IOException、NullPointerException等,另一种是自定义异常,可以根据业务需要自行定义。
本篇攻略将详细讲解Java抛出异常与自定义异常类的应用示例,希望能够对大家有所帮助。
Java抛出异常示例
Java中的异常分为受检异常和运行时异常,其中受检异常需要在方法签名上声明或者捕获,而运行时异常则不需要。接下来我们通过一个例子来说明如何处理运行时异常和受检异常。
运行时异常示例
运行时异常是指在程序运行时抛出的异常,通常是由程序逻辑错误引起的,如数组下标越界、除数为0等。下面是一个简单的运行时异常示例:
public class Demo {
public static void main(String[] args) {
int a = 100;
int b = 0;
try {
int c = a / b;
System.out.println(c);
} catch (ArithmeticException e) {
System.out.println("除数不能为0");
}
}
}
在上面的代码中,我们定义了a和b两个整型变量,然后试图将a除以b。由于b为0,因此会抛出ArithmeticException异常。我们使用了try-catch语句块来捕获异常,并在catch中处理了这个异常,输出了一条“除数不能为0”的提示信息。
这个示例中对运行时异常的处理比较灵活,我们可以到达很好的提示效果。
受检异常示例
受检异常是指需要在方法签名上声明或者捕获的异常,它通常由外界因素引起,如文件不存在、网络连接超时等。下面是一个受检异常的示例:
public class Demo {
public static void main(String[] args) {
try {
FileInputStream fis = new FileInputStream("test.txt");
} catch (FileNotFoundException e) {
System.out.println("文件不存在");
}
}
}
在上面的代码中,我们试图打开一个不存在的文件“test.txt”,因此会抛出FileNotFoundException异常。我们使用了try-catch语句块来捕获这个异常,输出了一条“文件不存在”的提示信息。
自定义异常示例
除了Java系统自带的异常类以外,我们还可以根据需要自定义异常类。通常情况下,我们自定义异常类需要继承自Exception或其子类。在自定义异常类中,我们可以定义一些构造方法和属性来满足业务需求。下面是一个自定义异常类的示例:
public class MyException extends Exception {
private int code;
private String message;
public MyException(int code, String message) {
this.code = code;
this.message = message;
}
public int getCode() {
return code;
}
public String getMessage() {
return message;
}
}
在上面的代码中,我们自定义了一个MyException类,它继承自Exception类。我们还定义了一个code属性和一个message属性,分别用于表示异常的状态码和异常信息。最后,我们提供了一个构造方法来初始化这些属性。
现在我们可以使用这个异常类来处理自己的业务逻辑。下面是一个使用自定义异常类的示例:
public class Demo {
public static void main(String[] args) {
try {
login("admin", "123456");
} catch (MyException e) {
System.out.println("登录失败,错误码:" + e.getCode() + ",错误信息:" + e.getMessage());
}
}
private static void login(String username, String password) throws MyException {
if (!"admin".equals(username) || !"123456".equals(password)) {
throw new MyException(1001, "用户名或密码错误");
}
System.out.println("登录成功");
}
}
在上面的代码中,我们定义了一个login方法,用于模拟用户登录。如果用户名或密码错误,我们就抛出一个MyException异常,其中状态码为1001,消息为“用户名或密码错误”。在main方法中,我们使用try-catch语句块来捕获这个异常,并输出错误信息。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java抛出异常与自定义异常类应用示例 - Python技术站