Java 忽略异常
在计算机编程中,在软件测试过程中,我们不可能涵盖每一个输入;相反,我们测试软件的一些通用场景、单元和条件路径。但是,在某些情况下,你无法防止发生运行时错误并被终止,除非你使用了适当的异常处理机制。
但是多亏了 Java 编程,它提供了异常处理等概念,你可以防止运行时错误并在终止或崩溃程序之前处理它们。
Java 中的异常处理
异常处理是一种帮助开发人员在终止程序之前处理错误的技术。它用于处理程序中可能导致错误的异常情况,以维持程序的正常流程。
但是,它仍然需要开发人员和测试人员的技能,即他们如何专业和高效地使用异常处理技术来忽略 Java 中的异常。
我们可以使用特殊的关键字来处理 Java 中的异常:try
、catch
、finally
、throws
和 throw
。
假设我们有一个将两个数字相除的小程序。
package codes;
public class Codes {
public static void main(String[] args) {
System.out.println(12 / 2);
System.out.println(12 / 1);
System.out.println(12 / 0);
System.out.println("This is the line after the exception");
}
}
输出:
6
12
Exception in thread "main" java.lang.ArithmeticException: / by zero
at codes.Codes.main(Codes.java:10)
在上面的例子中,12 先除以 2、1,然后是 3。前两个数字 2 和 1 已经平滑地除掉了数字 12,没有产生任何错误,但是最后一位数字 0 却导致了异常,程序异常终止。
原因是我们不能用 0 来除任何数字,所以编译器抛出了一个运行时错误并终止了程序。如你所见,由于异常终止,程序的最后一行没有执行。
忽略 Java 中的异常
正如我们在上面的例子中看到的,我们通过将一个数字除以 0 得到了一个 ArithmeticException
。但是在 Java 中有一些方法可以忽略这些异常或异常情况。
我们再来看看上面的例子,尽量忽略异常,保持程序的正常流程。
package codes;
public class Codes {
public static void main(String[] args) {
try {
System.out.println(12 / 2);
System.out.println(12 / 1);
System.out.println(12 / 0);
} catch (ArithmeticException e) {
System.out.println("Division by Zero() isn't a valid expression\n"
+ "The type of this exception is " + e);
}
System.out.println("This is the line after the exception");
}
}
输出:
6
12
Division by Zero() isn't a valid expression
The type of this exception is java.lang.ArithmeticException: / by zero
This is the line after the exception
在这个程序中,我们使用 try-catch
块来忽略 Java 程序中的异常。基本上,在 try
块中,我们有可能导致运行时错误的代码,如果在 try
块中发现任何异常,则 catch
块用于显示任何要解释的自定义消息例外。
在这种情况下,前两条语句运行顺利,第三条语句导致由 try-catch
处理的异常,并打印最后一行代码。
Java 异常的常见示例
在 Java 中,我们有不同的异常类型;每个人都对场景或条件负责。以下是一些最常见的例外情况。
ClassNotFoundException
NoSuchMethodException
NullPointerException
ArrayIndexOutOfBoundsException
IllegalStateException
ArithmeticException
FileNotFoundException
Zeeshan is a detail oriented software engineer that helps companies and individuals make their lives and easier with software solutions.
LinkedIn