java中的编译时异常和运行时异常
首先区分一下 编译时异常和运行时异常
运行时异常,也就是extends RuntimeException的异常编译时不用try{}catch(){}和throws
编译时异常,也就是extends Exception 的异常需要在调用时try{}catch(){}或throws
下面是测试代码,温馨提示:注意throw和throws的区别,以免出现歧义
package syntax;/*** 异常测试* 运行时异常,也就是extends RuntimeException的异常编译时不用try{}catch(){}和throws* 编译时异常,也就是extends Exception 的异常需要在调用时try{}catch(){}或throws*/
interface I {void mm() throws InterruptedException; // InterruptedException是编译时异常void nn() throws Exception; // Exception本身是编译时异常void rr() throws NullPointerException; // NullPointerException是运行时异常
}
public class II implements I {@Overridepublic void mm() /*throws InterruptedException*/ { System.out.println(1);int a = 1;if(a==1) {// throw new InterruptedException("1");}}@Overridepublic void nn() throws Exception {int a = 1;if(a==1) {throw new Exception("1"); // 编译异常如果在方法实现中throw 编译Exception,则方法定义上必须throws该异常或其父类,否则编译错误}}@Overridepublic void rr() { // 如果抽象方法有throws Exception,覆盖的方法的定义上可以不用 throws Exception, 这一点,编译异常和运行时异常一样int a = 1;if(a==1) {throw new RuntimeException("1"); // 运行时异常如果在方法实现中throw 运行Exception,方法定义上可以不用throws,也能编译通过,这一点于编译时异常相反}}public static void main(String[] args) {I i = new II();try {i.mm();} catch (InterruptedException e) {e.printStackTrace();}try {i.nn();} catch (Exception e) {e.printStackTrace();}i.rr(); // 运行时异常不用try catch 也能编译通过}
}
大鹏激光
java中的编译时异常和运行时异常相关推荐
- 浅谈Java异常及其编译时异常和运行时异常的区别
异常是程序编码和运行时经常发生的事件,了解异常有助于我们提高代码质量,增强系统的健壮性,这里总结一下Java编程中的异常.以及Java编译时异常和运行时异常的区别,并列举几种常见的异常,以供参考学习. ...
- 异常---编译时异常和运行时异常:IO异常、NullPointerException、ArrayIndexOutBoundsException、ClassCastExoeption
一.概述 1.定义: 程序运行过程中的发生了不正常的情况 2.异常处理机制和作用----JVM虚拟机打印的 java语言时很完善的语言,提供了异常处理方式,出现异常,将异常信息打印到输出控制台,供程序 ...
- 编译时异常和运行时异常区别
文章目录 1.编译时异常因为什么而得名 2.编译时异常和运行时异常区别 3.编译时异常还有其他名字 4.运行时异常还有其他名字 5.所有异常都发生在运行阶段的 1.编译时异常因为什么而得名 编译时异常 ...
- java 运行 对象_java实例对象的编译时类型和运行时类型
为什么要区分编译时类型和运行时类型? 看这样一句代码:Person p=new Women()(Women类继承自Person类)那么,假如p的属性修饰符为public 访问属性时得到的是Person ...
- 编译时异常和运行时异常的区别
编译时异常和运行时异常的区别 参考文章: (1)编译时异常和运行时异常的区别 (2)https://www.cnblogs.com/lxl57610/p/6716252.html (3)https:/ ...
- 编译时类型和运行时类型到底是什么?
最近在看多态,里面有一句话困扰了我很久,就是 编译时类型和运行时类型 ps:多态定义:把子类对象直接赋给父类的引用时,当运行时调用该引用类型的方法时,其方法行为总是表现出子类的行为特征,而不是父类的行 ...
- C++编译时多态和运行时多态
C++编译时多态和运行时多态 作者:melonstreet 出处:https://www.cnblogs.com/QG-whz/p/5132745.html 本文版权归作者和博客园共有,欢迎转载,但未 ...
- java编译异常和运行时异常_浅谈异常结构图、编译期异常和运行期异常的区别...
异常处理一般有2种方式,要么捕获异常try-catch,要么抛出异常throws 如果一个方法后面抛出一个运行时期异常(throws RuntimeException),调用者无须处理 如果一个方法后 ...
- java面向对象三大特性之多态---编译时多态和运行时多态详解
一.引言 1.什么是多态? 说到重载和重写,大家可能都知道.它们都是多态性的体现,那么说什么是多态呢?多态是指允许不同子类型的对象对同一行为作出不同的响应.例如在生活中,比如跑的动作,小猫.小狗和大象 ...
最新文章
- 大数据小视角3:CarbonData,来自华为的中国力量
- 软路由 文件服务器拒绝,软路由踩坑
- 为什么要实现序列化接口
- 若依(基于SpringBoot的权限管理系统)的快速搭建
- cocos2d-x游戏实例(4)-地图碰撞
- 机器学习实战的P264中代码对应的公式推导
- MySQL在大数据、高并发场景下的SQL语句优化
- 工作288:跨组件传值
- pyqt5与html数据交互原理,pyqt5与本地html进行js交互
- 如何绘制逻辑图 — 6.要素的属性:内聚与解耦
- cocos2dx setVisible 与setEnabled 小实例
- python怎么定义一个变量为空列表_python – 为什么一个类变量没有在列表理解中定义,但另一个是?...
- 传奇修改map地图教程_传奇地图MAP编辑器
- php7版本号,discuz的php7版本号
- 软考-多媒体基础知识
- 合工大计算机系汪教授,合肥工业大学计算机与信息学院导师介绍:洪日昌
- C++中定义别名的几种方式总结
- 2022年度学习总结
- Quantopian教程系列四
- UVA - 1198 POJ - 1612 The Geodetic Set Problem (floyd+set+模拟)