Java中异常和错误的区别
异常和错误都是Throwable类的子类。错误表示主要由于系统资源不足而发生的问题,我们的应用程序不应该捕获这些类型的问题。一些错误的例子包括系统崩溃错误和内存不足错误。错误大多发生在运行时,因此它们属于未检查类型。
异常是在运行时和编译时都可能发生的问题。它主要发生在开发人员编写的代码中。异常分为两类:已检查异常和未检查异常。
序号 | 关键 | 错误 | 异常 |
---|---|---|---|
1 | 类型 | 归类为未检查类型 | 归类为已检查和未检查类型 |
2 | 包 | 属于java.lang.error | 属于java.lang.Exception |
3 | 可恢复/不可恢复 | 不可恢复 | 可恢复 |
4 | 不会在编译时发生 | 会在运行时和编译时发生 | |
5 | 示例 | OutOfMemoryError,IOError | NullPointerException,SqlException |
错误示例
public class ErrorExample { public static void main(String[] args){ recursiveMethod(10) } public static void recursiveMethod(int i){ while(i!=0){ i=i+1; recursiveMethod(i); } } }
输出
Exception in thread "main" java.lang.StackOverflowError at ErrorExample.ErrorExample(Main.java:42)
异常示例
public class ExceptionExample { public static void main(String[] args){ int x = 100; int y = 0; int z = x / y; } }
输出
java.lang.ArithmeticException: / by zero at ExceptionExample.main(ExceptionExample.java:7)
广告