java中为什么把Checked Exception翻译成受检的异常?
6.Checked Exception(受检的异常)
马克-to-win:为什么我大胆的把Checked Exception翻译成受检的异常?因为这类异常,编译器检查发现到它后会强令你catch它或throws它(我们之后讲),马克-to-win:而相对于本节前面我们提到的各种比如ArithmeticException,都是unchecked exception(不受检)的异常,unchecked异常都是RuntimeException或者它的子类。马克-to-win:换句话:编译器检查发现到它以后,什么都不管,也什么都不做,直接放行。见下面的例子:
例:1.6.1-
public class Test {
void m1_mark_to_win() {
throw new RuntimeException("divide by 0");
}
public static void main(String[] args) {
Test t=new Test();
t.m1_mark_to_win();
}
}
马克-to-win:注意上面一个例子ArithmeticException是个unchecked exception, 所以什么问题都没有,编译器不报错。马克-to-win:但是,当我们把ArithmeticException变成FileNotFoundException这种checked exception时,就会出现问题。马克-to-win:如下面例:1.6.2,根本就编译不过去。必须变成1.6.3才能运行。
例:1.6.2(编译报错,不能运行)-
import java.io.FileNotFoundException;
public class Test {
void m1_mark_to_win() {
throw new FileNotFoundException();
}
public static void main(String[] args) {
Test t=new Test();
t.m1_mark_to_win();
}
}
在throw new FileNotFoundException();外面,马克-to-win:必须包上一个try catch块儿,程序才能通过编译。
例:1.6.3-
import java.io.FileNotFoundException;
public class Test {
void m1_mark_to_win() {
try {
throw new FileNotFoundException();
} catch (FileNotFoundException e) {
System.out.println(" in catch");
e.printStackTrace();
}
}
public static void main(String[] args) {
Test t=new Test();
t.m1_mark_to_win();
System.out.println("马克-to-win:优雅结束");
}
}
更多内容请见原文,文章转载自:https://blog.csdn.net/qq_44639795/article/details/103108986
java中为什么把Checked Exception翻译成受检的异常?的更多相关文章
- 在java中String类为什么要设计成final
在java中String类为什么要设计成final? - 胖胖的回答 - 知乎 https://www.zhihu.com/question/31345592/answer/114126087
- 在java中String类为什么要设计成final?
大神链接:在java中String类为什么要设计成final? - 程序员 - 知乎 我进行了重新排版,并且更换了其中的一个例子,让我们更好理解. String很多实用的特性,比如说“不可变性”,是工 ...
- 《 .NET并发编程实战》一书中的节流为什么不翻译成限流
有读者问,为什么< .NET并发编程实战>一书中的节流为什么不翻译成限流? 这个问题问得十分好!毕竟“限流”这个词名气很大,耳熟能详,知名度比“节流”大多了. 首先,节流的原词Thrott ...
- java异常—检查异常(checked exception)和未检查异常(unchecked exception)
网易面试要我画异常的结构图,什么是检查异常,什么是非检查异常,我当时的表情是这样的,.我看过,忘了.没办法,继续看,写博客掌握. 先来看看异常的结构图,建议你结合JDK一起看. 可以看出异常的家族势力 ...
- 谈一谈Java中的Error和Exception
Error和Exception的联系 继承结构:Error和Exception都是继承于Throwable,RuntimeException继承自Exception. Error和RuntimeExc ...
- Java 检查异常(checked exception)和未检查异常(unchecked exception)区别理解
所有异常类型都是 Throwable 类的子类,它包含Exception类和Error类,Exception又包括checked exception和unchecked exception. unch ...
- Java中的Error和Exception
Exception和Error都是继承了Throwable类,在Java中只有Throwable类型的实例才可以被抛出(throw)或者捕获(catch),它是异常处理机制的基本组成类型. Excep ...
- 在Java中String类为什么要设计成final?String真的不可变吗?其他基本类型的包装类也是不可变的吗?
最近突然被问到String为什么被设计为不可变,当时有点懵,这个问题一直像bug一样存在,竟然没有发现,没有思考到,在此总结一下. 1.String的不可变String类被final修饰,是不可继承和 ...
- Java中的String为什么要设计成不可变的?
一.不可变类和不可变对象 Normally,you create an object and allow its contents to be changed later.However ,occas ...
随机推荐
- 三、Java入门
Java入门 Java的特性和优势 特性 简单 面对对象 可移植性 优势 性能高 分布式(跨平台:Write Once .Run Anywhere) 动态性(反射) 多线程 ...
- LeetCode-071-简化路径
简化路径 题目描述:给你一个字符串 path ,表示指向某一文件或目录的 Unix 风格 绝对路径 (以 '/' 开头),请你将其转化为更加简洁的规范路径. 在 Unix 风格的文件系统中,一个点(. ...
- WordCount基于本地和java的使用
直接使用hadoop中的wordcount中的jar包进行使用 JAVA实现WordCount import java.io.IOException; import org.apache.hadoop ...
- .NET6: 开发基于WPF的摩登三维工业软件 (8) - MVVM
基于WPF开发界面的一个很大优势是可以方便地基于MVVM设计模式开发应用.本文从应用的角度基于MVVM实现参数化管材的创建界面. 1 MVVM MVVM是Model-View-ViewModel的简写 ...
- SpringBoot接入轻量级分布式日志框架(GrayLog)
我是3y,一年CRUD经验用十年的markdown程序员常年被誉为优质八股文选手 前两天我不是发了一篇数据链路追踪的文章嘛,在末尾也遗留了TODO:运行应用的服务器一般是集群,日志数据会记录到不同的 ...
- LGP3426题解
真是不管什么时候来做这道题都会觉得很神仙呐... 观察一下,如果存在一个合法的印章,那么这个印章一定是这个串的前缀,也是这个串的后缀. 即合法的印章一定是原串的 \(\rm Border\). 于是设 ...
- CF708C题解
挺简单的一道数据结构... 首先考虑这个"改造"的本质,很明显是把一颗子树塞到了另一个节点下面. 考虑一个节点可能成为重心的条件.条件很明显是只有一颗子树的大小大于 \(\frac ...
- 在西电使用校内Linux 开源软件镜像
西电开源社区(linux.xidian.edu.cn)为全校师生提供开源镜像服务,由于其使用校内服务器,因此产生的流量不会计入校园网 打开镜像列表:https://linux.xidian.edu.c ...
- 关于alertmanager报No private IP address found, and explicit IP not provided
./alertmanager --config.file=alertmanager.yml level=info ts=2021-11-22T05:53:11.195Z caller=main.go: ...
- SMB共享配置
SMB 使用命令挂载和卸载SMB文件系统 自动挂载SMB文件系统 红帽企业 ...