Java中异常和错误之间的区别

异常和错误都是Throwable类的子类。该错误表示主要由于缺少系统资源而导致的问题,我们的应用程序不应捕获这些类型的问题。错误的一些示例是系统崩溃错误和内存不足错误。错误大多发生在运行时,因为它们属于未经检查的类型。 

异常是在运行时和编译时可能发生的问题。它主要发生在开发人员编写的代码中。异常分为两类,例如检查的异常和未检查的异常。 

序号错误例外
1
类型 
分类为未经检查的类型 
分类为已检查和未检查 
2
包 
它属于java.lang.error 
它属于java.lang.Exception 
3
可恢复/不可恢复
这是无法恢复的
它是可恢复的

 它不能在编译时发生 
它可以在运行时编译时同时发生 
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)