Java异常分类处理抛出捕获操作详解
在 Java 中,当程序发生异常时,如果不做处理,则程序会中断运行。为了保证程序的正常运行,我们需要对异常进行处理。Java 的异常处理机制主要分为以下几种分类:
捕获异常
通过try-catch语句捕获异常,使程序不会因为异常而中断运行,而是继续执行下去。catch语句用于捕获try语句块中的异常,并且在catch语句中进行处理。
try {
// 可能会引发异常的代码
} catch (Exception e) {
// 异常处理代码
}
上述代码中,捕获的异常类型为“Exception”,这里的“Exception”是所有异常类的基类,表示可以捕获任何异常。如果知道具体的异常类型,则可以选择指定捕获该异常类型。
抛出异常
当代码执行过程中出现异常时,可以抛出一个异常对象,并让调用它的方法来处理这个异常。
public void demoMethod() throws Exception {
// 可能会引发异常的代码
throw new Exception("发生了异常");
}
上述代码中,定义了一个方法demoMethod()
,声明了在该方法中可能会抛出一个Exception
类型的异常,并且通过throw
关键字抛出了一个Exception
对象。
自定义异常
Java中提供了一些预定义异常,但是在开发中有时需要自定义异常,即定义一种异常类型以表示特定情况下的异常。自定义异常类需要继承一个现有的异常类,可以继承Java的所有异常类。
public class MyException extends Exception {
public MyException() {
super();
}
public MyException(String message) {
super(message);
}
}
上述代码中,定义了一个名为MyException
的类,它继承自Exception
类。MyException
类提供了两个构造函数,一个是空构造函数public MyException() {}
,另一个是带有一个字符串参数的构造函数public MyException(String message) { super(message); }
,用于输出异常信息。
示例说明
示例一
在以下代码中,我们使用了try-catch语句来捕获异常。我们使用了Scanner类的next()方法读取用户输入的字符串,如果用户没有输入任何内容,则该方法会抛出InputMismatchException异常,我们使用try-catch语句来捕获这个异常,并且在catch语句中输出了异常信息。
import java.util.Scanner;
import java.util.InputMismatchException;
public class Demo {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("请输入数字:");
try {
int num = scanner.nextInt();
System.out.println("输入的数字是:" + num);
} catch (InputMismatchException e) {
System.out.println("您输入的不是数字!");
}
}
}
示例二
在以下代码中,我们自定义了一个异常类MyException
来表示一种特定的异常情况,即当用户输入的数字小于0时,我们抛出MyException
异常,因为这不符合我们的要求。在代码中,我们使用throw
关键字抛出了MyException
异常,并且在main()
方法中使用了try-catch语句捕获了这个异常,并且输出了异常信息。
public class Demo2 {
public static void main(String[] args) {
try {
int num = getInputNum();
if (num < 0) {
throw new MyException("您输入的数字不能小于0!");
} else {
System.out.println("输入的数字是:" + num);
}
} catch (MyException e) {
System.out.println(e.getMessage());
}
}
public static int getInputNum() throws MyException {
Scanner scanner = new Scanner(System.in);
System.out.print("请输入数字:");
int num = scanner.nextInt();
return num;
}
}
class MyException extends Exception {
public MyException(String message) {
super(message);
}
}
总结
以上是Java异常分类处理抛出捕获操作的详细攻略,通过本文的介绍,我们了解了Java异常处理机制的主要分类、异常的捕获、抛出、自定义等相关操作。在实际开发中,我们应该充分利用Java异常处理机制来避免程序因为异常而中断运行,从而保证程序的健壮性和稳定性。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java异常分类处理抛出捕获操作详解 - Python技术站