java中的编译时异常和运行时异常

Java异常处理:运行时异常与编译时异常的区别 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 {
	@Override
	public void mm() /*throws InterruptedException*/ { 
		System.out.println(1);
		int a = 1;
		if(a==1) {
			// throw new InterruptedException("1");
		}
	}
	
	@Override
	public void nn() throws Exception {
		int a = 1;
		if(a==1) {
			throw new Exception("1"); 
			// 编译异常如果在方法实现中throw 编译Exception,则方法定义上必须throws该异常或其父类,否则编译错误
		}
	}
	
	@Override
	public 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 也能编译通过
	}
}

大鹏激光

基于STM32、HAL库的TLV320AIC3204IRHBR音频接口芯片驱动程序设计 * 开启所有数字部分 */#define TLV320AIC3204_REG_LEFT_HEADPHONE_OUT_VOLUME 0x0C /* 左声道耳机输出音量 */#define TLV320AIC3204_REG_DIGITAL_AUDIO_PATH_CONTROL 0x05 /* 数字音频路径控制 */#define TLV320AIC3204_REG_ANALOG_HP_FILTER_CONTROL 0x34 /* 模拟耳机滤波器控制 *//* 最大音量 */ 阅读详情

相关推荐

OnlyOffice Docker部署全攻略:解除连接限制+文件大小限制+中文字体优化

本文详细介绍了OnlyOffice企业级Docker部署的完整解决方案,重点破解连接限制、文件大小限制和中文字体优化三大核心痛点。通过定制化镜像部署、性能调优配置和中文字体深度优化,帮助企业实现高效稳定的文档协作平台。

weixin_28837817的博客 368

Java之异常处理机制

一 什么是异常? 异常模拟的是现实世界中“不正常”的事件。Java中采用类的方式去模拟现实世界的异常事件 类是可以创建对象的,在Java中因为一类异常是用一个异常类表示的,所以异常类也可以创建对象。比如:NullPointerException npe=0x1234;其中e是一个引用类型的变量,保存的是NullPointerException异常对象的内存地址。 异常处理机制的作用:Java...

gaohanjie123的博客 327

中兴B860AV2.1-A刷机避坑指南:晶晨免拆神器+安卓7.1.2固件实测

本文提供中兴B860AV2.1-A机顶盒的详细刷机教程,重点介绍使用晶晨免拆神器配合安卓7.1.2线刷固件包的实操步骤。内容涵盖刷机前的硬件确认、工具准备、软件设置、烧录全过程监控及常见问题解决,旨在帮助用户安全、高效地完成刷机,规避变砖风险,释放设备潜力。

pytorch8learner的博客 746

通俗理解运行时异常和非运行时异常(一般异常)

一,异常的概念Java异常类层次结构图: Throwable: 有两个重要的子类:Exception(异常)和 Error(错误),二者都是 Java 异常处理的重要子类,各自都包含大量子类。Error(错误):是程序无法处理的错误,表示运行应用程序中较严重问题。大多数错误与代码编写者执行的操作无关,而表示代码运行时 JVM(Java 虚拟机)出现的问题。例如,Java虚拟机运行错误

飞奔的波大爷的博客 4万+

Android音频输出流实战:从AudioFlinger到HAL层的完整调用链解析

本文深入解析了Android音频输出流的完整调用链,从应用层的AudioTrack和AAudio API,到系统服务AudioFlinger的混音调度,最终抵达硬件抽象层(HAL)。文章结合实战经验,探讨了如何利用底层机制优化音频延迟、处理设备切换,并提供了性能调优与问题排查的具体方法,是开发高性能音频应用的实用指南。

weixin_29208327的博客 252

出现 RuntimeError: adaptive_avg_pool2d_backward_cuda does not have a deterministic implementation的解决方法

大致就是在执行主函数的训练函数中,在反向传播这一块出现了问题。解决方法就是添加如下代码块。找到提示bug的行数。

码农研究僧的博客 5532

Java的异常体系;常见的运行时异常和非运行时异常

造成的问题,比如FileNotFoundException写了一个程序,自动阅卷,需要读取答案的路径(用户录入),用户可能录入是一个错误的路径,所以我们要提前预案,写好发生异常之后的处理方式,栈内存溢出错误:StackOverflowError(递归,递归层次太多或递归没有结束)IllegalStateException 无效状态异常 如往队列中放超过队列长度的参数。此类异常,编译时没有提示做异常处理,因此通常此类异常的正确理解应该是“逻辑错误”,比如空指针异常,这种问题是编 程逻辑不严谨造成的。

zwb的博客 377

大数据分析案例-基于随机森林算法构建二手房价格预测模型

通过应用随机森林算法,我们希望建立一个能够有效预测二手房价格的模型。这个模型可以基于各种因素,如区域位置、房屋属性、市场供需等,来预测未来某一时间点的房价。通过提高预测准确性,我们可以更好地把握房地产市场动态,为决策提供更有价值的参考。揭示影响二手房价格的因素及其影响方式:通过分析随机森林算法生成的模型,我们可以进一步了解哪些因素对二手房价格有重要影响,以及这些因素如何影响房价。这有助于我们深入理解房地产市场的运行规律,为制定更为有效的市场策略提供依据。

m0_64336780的博客 1万+

java运行异常与受检异常_Java异常

Throwable类Throwable类是整个异常体系类的父级类,它实现了Serializable接口,它的父类是Object类,它的子类有Exception和Error,这2个子类下面都有很多子类。Error是程序发生了重大错误,不能解决,只能避免,比如:内存泄漏Exception:可对其进行处理的异常20160907101613.jpg受检异常和非受检异常受检异常(checkedExcepti...

weixin_35637837的博客 1102

点云配准SIFT+SI+RANSAC+ICP

Spin Image(SI)是一种用于点云数据描述的特征描述子,广泛应用于三维点云配准、识别和重建等领域。它能够捕捉点云中的局部几何信息,具有旋转不变性和部分平移不变性等优点,是一种非常强大的特征描述子。Spin Image是一种强大的点云特征描述子,具有旋转不变性、局部几何信息捕捉等优点,适用于点云配准、目标识别和三维重建等多个领域。通过合理选择局部区域、建立参考框架和计算描述子,可以充分利用Spin Image描述点云的特征,从而实现各种三维场景分析和处理任务。

点云兔子的博客 558

基于STM32、HAL库的W25Q01JVZEIQ TR FLASH存储器驱动应用程序设计

1Gb (128MB),分为512个可擦除块(block),每个块256KB。:块擦除约30-50ms,芯片擦除约30s。:标准SPI (支持1/2/4线模式)// 初始化CS引脚为高电平。// 擦除扇区(4KB)// 初始化Flash。/* 状态寄存器位 *//* 指令定义 *//* 超时定义 *//* 函数声明 */

corlin6688的博客 267

JAVA语法异常——编译时异常和运行时异常,异常的作用

JAVA语法异常——编译时异常和运行时异常,异常的作用

WZY22502701的博客 1758

YOLO26-seg分割优化:FPN涨点&轻量化篇 |多级特征融合金字塔(HS-FPN),助力小目标检测

​​​​​摘要:本研究对Ultralytics YOLO26进行了全面分析,重点阐述了其关键架构改进及其在实时边缘目标检测中的性能基准测试。YOLO26于2025年9月发布,是YOLO系列最新、最先进的成员,专为在边缘及低功耗设备上实现高效、精确且易于部署的目标而构建。本文依次详述了YOLO26的架构创新,包括:移除了分布焦点损失(DFL);采用端到端的无NMS推理;集成了渐进损失(ProgLoss)与小目标感知标签分配(STAL);以及引入了用于稳定收敛的MuSGD优化器。

①答疑群聊服务;②YOLO大模型知识问答系统;③计算机视觉论文生成智能体; 282

【Java】编译时异常和运行时异常

运行时异常和编译时异常的区别?编译时异常,在语法中,它是直接继承Exception:除了RuntimeException和它的子类,其他都是编译时异常。编译阶段需要进行处理,作用在于提醒程序员。RuntimeException本身和所有子类都是运行时异常。在编译阶段是不会报错的,是程序运行时出现的异常。这种异常一般是由于程序员代码写错了,参数传递错误代理的问题。

qq_39921135的博客 1885

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

Java中的异常处理:运行时异常与编译时异常

Java中的异常处理是确保程序健壮性和可靠性的关键部分。运行时异常通常是由于程序逻辑错误引起的,编译器不会强制要求处理;而编译时异常通常是由于外部因素引起的,编译器会强制要求处理。通过本文的学习,你应该能够更好地理解这两种异常的区别及其处理方式,并能够在实际编程中应用这些知识。

xycxycooo的博客 1076

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

Java——异常——运行时异常与编译时异常

Java——异常——运行时异常与编译时异常 ①编译时异常 1、经常会在程序编译时产生一些异常,而这些异常必须要进行处理,这种异常被称为编译时异常,也称为checked异常。 2、在Java中,Exception类中除了RuntimeException类及其子类都是编译时异常。 3、特点 Java编译器会对其进行检查,如果出现问题异常就必须对异常进行处理,否则程序无法通过编译。 4、处理异常方法:使用try…catch语句对异常进行捕获。使用throws关键字声明抛出异常,调用者对其处理。 ②运行时异常 1、

XQC_KKK的博客 3475

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

java中运行时异常与编译时异常?

与编译时异常不同,运行时异常通常是由开发者的错误、逻辑问题或运行环境的异常造成的,例如数组越界、空指针引用等。无论是编译时异常还是运行时异常,都属于Java中的异常体系,通过正确处理异常可以提高代码的稳定性和可靠性。编译时异常是指在Java代码中可能出现的异常情况,编译器在编译代码时强制要求对这些异常进行处理或声明抛出。在Java中,异常分为两种类型:运行时异常(Runtime Exceptions)和编译时异常(Checked Exceptions)。- 如果不处理这些异常,程序会抛出异常并终止运行。

qq_45635347的博客 711

java中的运行时异常和编译时异常的不同

运行时异常是不可查的,因为他在应用程序程序的控制和处理能力之外,而且绝大多数是程序运行时不运行出现的状况,程序设计者无能为力,因此不必处理他们,不要求强制处置。如果只写声明,无非就是往上抛异常,但值得一提的是如果声明的是运行时异常,只要是运行时异常,似乎抛出的异常与声明的异常不相符是可以的。会发现他会让你必须对Count类里的异常进行声明或捕获,这就是运行时异常和编译时异常的不同。所谓编译时异常其实就是异常中出运行时异常及其子类以外的异常。异常分为 运行时异常 和 编译时异常。

HHBBL的博客 334

关于JAVA中编译时异常和运行时异常的区别

javase异常中相关笔记

weixin_62739974的博客 1120

java中自定义异常& 编译时异常&运行时异常

编译时异常&运行时异常 A: 编译时期异常:是Exception的子类,非RuntimeExcpetion的子类,在编译时期必须处理 B:RuntimeException和他的所有子类异常,都属于运行时期异常。NullPointerException,ArrayIndexOutOfBoundsException等都属于运行时期异常. 运行时期异常的特点: 方法中抛出运行时期异常

反正我不管,就爱陈旭员 3913

《Java基础》(异常)编译时异常和运行时异常的区别

编译时异常和运行时异常的区别  Java中的异常分为两大类:编译时异常和运行时异常,也被称为受检异常和非受检异常所有的RuntimeException类及子类都被称为运行时异常,其他的异常都是编译时异常 编译时异常:必须显示处理,否则程序会放生错误,无法通过编译 运行时异常:无需显示处理,也可以通过编译时异常一样处理 /** * @author Wrry * @data 2020 * @desc 编译时异常和运行时异常的区别 */ public class YiChang03 { pu

Wrry_L先生 728

java 编译异常_Java运行时异常和编译时异常介绍及实例讲解

Java当中的异常了解Java当中的异常,那么什么是异常呢?异常又有什么分类呢?异常中的特殊结构:try...catch...finally 结构的使用方法。异常是一种对象,是靠虚拟机产生的,异常中断了正常指令流(程序靠着一个又一个指令)的事件,异常是运行时出现的。在Java中编译上出现的错误为所谓的语法上等的错误,而异常是编译通过的,但在运行时产生的,和编译是没有什么关系的。异常会中断过程,后面...

weixin_42498585的博客 1408

Java面试必备:Java异常处理 运行时异常与编译时异常详解

在Java编程中,**异常处理**是保证程序健壮性的关键机制。Java异常体系主要分为两类:

qq_58299462的博客 1149

Java异常:编译时异常与运行时异常

编译时异常与运行时异常详解。

月光晒了很凉快的博客 666

很多人分不清!Java 运行时异常和编译时异常的真正区别

那是一个月黑风高的夜晚(好吧,其实就是普通的周五加班),我正在为公司的订单系统写一个文件上传功能。现在的我,再也不会在深夜被突如其来的异常吓到了。因为我知道,每一个异常都有它的"脾气",掌握了它们的性格,就能和它们和谐相处。就像那个严格的哥哥,在你写代码时就会跳出来说:“兄弟,这里可能出问题,你必须想好怎么处理!这时候IDE才会提醒你:老兄,你调用的方法可能抛出编译时异常,必须处理!则像调皮的弟弟,编译时乖乖的,运行时突然给你来个"惊喜"。但问题来了:当我在调用这个方法的地方忘记处理异常时…

2501_92441786的博客 400

Java编译时异常和运行时异常

什么是编译时异常,什么是运行时异常

strong_yu的博客 5990
上一篇: MySQL,针对limit优化,以及讨论using filesort、using temporary和索引失效的问题
下一篇: 使用反向ssh从外网访问内网主机的方法详解
冷down
博客等级 码龄10年 11粉丝 18原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值