[Java] [Exception]

Posted ArancioneRagazza

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[Java] [Exception]相关的知识,希望对你有一定的参考价值。

Overview

  • 在java编程思想中对异常的定义:阻止当前方法或作用域继续执行的问题
  • 异常相关的知识点并不复杂,主要难点在于实际处理过程中对异常处理的设计。

异常的分类

  • java exception分为Error和Exception,这两类都是接口Throwable的子类。具体关系如下图:
  • 其中:
    • Error仅发生在jvm中,用户无需在程序中捕获或抛出Error。
    • Exception分为一般的Exception和RuntimeException两大类。
  • checked vs unchecked:
    • checked:一般是程序不能直接控制的外界情况,是指在编译时就需要检查的一类Exception,用户程序中必须try catch或者throws。包括除Error和RuntimeException及其子类之外的异常
    • unchecked:指的是那些不需要在编译期间就处理的一类异常。不需要try catch等机制处理。

Error

  • Error:用于指示合理的应用程序不应该试图捕获的严重问题。
  • 比如说VirtualMachineError:当 Java 虚拟机崩溃或用尽了它继续操作所需的资源时,抛出该错误。该错误就直接交给JVM吧。

Exception

  • Exception:它指出了合理的应用程序想要捕获的条件。
  • Exception又分为两类:一种是CheckedException,一种是UncheckedException(通常又叫RuntimeException)。这两种Exception的区别主要是CheckedException需要用try...catch...显示的捕获,而UncheckedException不需要捕获。
  • 常见的RuntimeExcepiton有IllegalArgumentException、IllegalStateException、NullPointerException、IndexOutOfBoundsException等等。

以上是关于[Java] [Exception]的主要内容,如果未能解决你的问题,请参考以下文章

java使用类数组 报错Exception in thread "main" java.lang.NullPointerException

Symfony\Component\HttpKernel\Exception\MethodNotAllowedHttpException。原因是啥?

C++ exception类:C++标准异常的基类

java virtual machine launcher Error:Could not create the Java Virtual Machine. Error:A Fatal excepti

spring自定义controller全局异常拦截

使用 Doctrine 保存行时出现 Doctrine_Connection_Mysql_Exception