检查型异常&非检查型异常

摘抄自:https://blog.csdn.net/lipr86/article/details/78674572

1. 粉红色的是受检查的异常(checked exceptions),其必须被 try{}catch语句块所捕获,或者在方法签名里通过throws子句声明.受检查的异常必须在编译时被捕捉处理,命名为 Checked Exception 是因为Java编译器要进行检查,Java虚拟机也要进行检查,以确保这个规则得到遵守.

2. 绿色的异常是运行时异常(runtime exceptions),需要程序员自己分析代码决定是否捕获和处理,比如 空指针,被0除...

3. 而声明为Error的,则属于严重错误,如系统崩溃、虚拟机错误、动态链接失败等,这些错误无法恢复或者不可能捕捉,将导致应用程序中断,Error不需要捕捉。

原文地址:https://www.cnblogs.com/shujiying/p/12206858.html

时间: 2024-11-02 13:05:43

检查型异常&非检查型异常的相关文章

【Java】检查型异常和非检查型异常

检查型异常(CheckedException)在Java中所有不是RuntimeException派生的Exception都是检查型异常.当函数中存在抛出检查型异常的操作时该函数的函数声明中必须包含throws语句.调用改函数的函数也必须对该异常进行处理,如不进行处理则必须在调用函数上声明throws语句. 检查型异常是JAVA首创的,在编译期对异常的处理有强制性的要求.在JDK代码中大量的异常属于检查型异常,包括IOException,SQLException等等. 非检查型异常(Unchec

检查型异常和非检查型异常

对于因为编程错误而导致的异常,或者是不能期望程序捕获的异常(解除引用一个空指针,数组越界,除零,等等),为了使开发人员免于处理这些异常,一些异常被命名为非检查型异常(即那些继承自 RuntimeException 的异常)并且不需要进行声明. Checked Exception和Unchecked Exception的几点不同之处 方法签名是否需要声明exception 调用该方法时是否需要捕获exception exception产生的时候JVM控制程序的状态 Sun 的"The JavaTu

Java检查型异常和非检查型异常

1.代码 public class ExcepTest { /** * @param args */ public static void main(String[] args) { System.err.println("111111111111"); // say(); //抛出异常,但是代码不显示的try..catch.. // calc(); //抛出异常,但是代码不显示的try..catch.. // try { // show(); // } catch (Exceptio

java 异常 检查型和非检查型

Java中异常的分类 所有异常,都继承自java.lang.Throwable类. Throwable有两个直接子类,Error类和Exception类. Exception Exception则可使从任何标准Java库的类方法,自己的方法以及运行时任何异常中抛出来的基类型. 异常可分为执行异常(RuntimeException)和检查异常(Checked Exceptions)两种 RuntimeException RuntimeException在默认情况下会得到自动处理.所以通常用不着捕获

java 检查异常 和 非检查异常

个人见解 ,如果有问题 ,还希望大神们 指正 1. 非检查异常 又称运行时 异常 ,所有 继承自 RuntimeException 的异常都是 非检查异常  ,, 如果你不处理  会有 虚拟机 main  方法处理 2. 凡是 不继承自 RuntimeException 的异常都是 检查异常 (如 IO 异常) 3. 上层调用者必须对  检查 异常 做处理 : try_catch  或者 继续 throws 给上层处理 4.  为什么要有检查异常: 通常情况下 ,检查异常 并不是你的程序写的有问

对检查性异常和非检查性异常的理解

从开始学习Java,就学习了异常处理,知道异常分为检查性异常和非检查性异常,RuntimeException属于非检查性异常,知道异常的分类.但工作之前没有很多的实际应用,知识书本上课件上的定义,对两种异常的理解并不是很清楚.工作后在实际代码中,逐渐捋顺清楚了,这里记录一下,基础知识就不说了,书上课件上网上资料很丰富,这里只总结对两种异常的理解. 1.检查性异常: JAVA编译器强制要求用try{}catch(){}块进行处理,如果不处理则必须在包含可能发生异常的代码的方法上用throws显示地

java 检查抛出的异常是否是要捕获的检查性异常或运行时异常或错误

/** * Return whether the given throwable is a checked exception: * that is, neither a RuntimeException nor an Error. * @param ex the throwable to check * @return whether the throwable is a checked exception * @see java.lang.Exception * @see java.lang

检查时异常和运行是异常 + 事务回滚

检查时异常checked Exception 是编译检查时候就能发现的异常.这个能在try catch中处理,就在try catch 中处理. 运行时异常(Runtime Exception),是程序遇到了问题,需要停下.这个不用try catch 处理,因为遇到这个程序就停下了...... spring框架中能默认回滚的异常时 Runtime Exception. 需要在方法上添加 @Transactional(rollbackFor={Exception.class}) 此文为笔记 参考链接

运行时异常和检查性异常区别

Java提供了两类主要的异常:runtime exception和checked exception.checked 异常也就是我们经常遇到的IO异常,以及SQL异常都是这种异常.对于这种异常,JAVA编译器强制要求我们必需对出现的这些异常进行catch.所以,面对这种异常不管我们是否愿意,只能自己去写一大堆catch块去处理可能的异常. 但是另外一种异常:runtime exception,也称运行时异常,我们可以不处理.当出现这样的异常时,总是由虚拟机接管.比如:我们从来没有人去处理过Nul