java学习笔记 异常处理

Java学习笔记:异常处理 Java学习笔记:异常处理 ! 阅读详情

以下所列举的异常类如:Exception1,Exception2都是Exception的子类,Exception类是所有异常的基类,Exception继承自Throwable

try{
}catch(Exception1 ex1){
}catch(Exception2 ex2){
}......{
}finally{
}
每个try可以跟多个catch(参数必须有,类型可以不同),catch会根据try抛出的异常类型进行选择匹配
不同于switch(){case ...break;}
Exception 是所有异常类的基类,如果第一个catch的参数就是Exception类型,那么就不会寻找后面的catch匹配,即使有匹配的类型,由此可见每个异常只允许一个catch来抓,


try{
}catch(Exception1 ex1){
 throws new Exception2;
}finally{
}
以上在catch块里又抛出新异常,那么包含以上代码块的方法也必须抛出相同的异常让上一层方法来处理新异常,例如
public type method() throws Exception2{
 try{
 }catch(Exception1 ex1){
  throws new Exception2;
 }finally{
 }
}
在调用method()方法的方法里必须处理异常Exception2,否则会报错。

另外,即使在方法体内没有抛出异常也可以在声明方法时虚张声势,例如:
public type method() throws Exception2{
 try{
 }catch(Exception1 ex1){
 }finally{
 }
}

不知道大家注意到没有上面的代码有些疑问的地方,例如:
//代码1
try{
}catch(Exception1 ex1){
 throws new Exception2;
}finally{
}
catch抓的异常(Exception1)和新抛的异常(Exception2)不同,为什么呢?
首先需要说明的是catch捕获的Exception异常信息没有子类(Exception1,Exception2)的详细,所以在使用中,为了能更准确地找到
错误的根源,我们会采用异常继承类而不是直接使用Exception,更重要的是上述问题
下面让我用另一段代码跟上述代码作比较
//代码2
try{
}catch(Exception1 ex1){
 throws new Exception1;
}finally{
}
显然,抓住的异常和新抛的异常相同,跟上面相比差别只在于新抛的异常

代码2新抛的异常跟try抛出的异常在堆栈里是在同一个位置,而代码1新抛的异常则是新的位置跟try块不同
这就是它们的区别
如果在代码2中添加一句,就可以达到跟代码1同样的效果
try{
}catch(Exception1 ex1){
 ex1.fillInStackTrace();
 throws new Exception1;
}finally{
}

如果只出现如下错误(没有打印堆栈错误),理论上讲错误不在try{}块内,而是程序正常运行产生的异常
 ERROR - java.lang.NullPointerException
 ERROR - java.lang.NullPointerException
注:try{}抛出的异常我在catch里都有ex.printStackTrace()输出

13【Java学习笔记】异常处理 除了Java中提供的一些异常类,还可以根据自己的需求定义异常类。//声明UserOwnException无参数构造方法//声明UserOwnException带有String类型参数的构造方法super();//调用父类的构造方法try {execute();//调用execute()方法try {//抛出异常//捕获Exception类//捕获后,直接抛出用户自定义异常类throw new UserOwnException("自定义异常抛出"+e.getMessage()) 阅读详情

相关推荐

NDIAurora 6D、5D传感器裸线焊接与烧录 6D传感器型号:10001742;5D传感器型号:610157

NDI Aurora 6D、5D传感器裸线焊接与烧录

yanghong2000719的博客 1200

java异常 之 异常的层次结构

一:起因 (1)最近在用java处理分析各种数据,碰到了一些异常,如parse()异常 ParseException,valueOf()NumberFormatException  IllegalArgumentException异常,NullPointerExcetion  IndexOutOfBoundsExceptionFileNotFoundException等 (2)异常不能任意捕获

思緒凌亂 5699

手把手教你用Nangate 45nm开源工艺库搞定数字电路仿真(附FreePDK资源)

本文详细介绍了如何使用Nangate 45nm开源工艺库进行数字电路仿真,包括环境搭建、关键文件解析、仿真环境配置及低功耗设计等实战内容。特别推荐FreePDK资源,帮助读者快速掌握从理论到实践的全流程操作,适用于学术研究和小规模数字电路设计。

weixin_30352645的博客 487

java异常处理中捕获多个异常时为什么习惯于将Exception的子类放在前面而父类放在后面?

首先,你说的这个情况叫“异常屏蔽”现象。假设有两种异常:BaseException和DerivedException。Java里每种异常都是一个类。假设前者是基类,后者是前者的派生类。就像这样,BaseException extends Exception {} DerivedException extends BaseException {}这时候如果我先尝试捕获BaseException,那所...

HD243608836的博客 4478

绿联UGOS Pro系统虚拟机部署Windows 11详细教程(跳账户登录,安装内存驱动)

总的来说,此次的虚拟机部署Windows 11出现的问题应该是目前几乎所有虚拟机都可能出现的问题,和绿联是没有关系的。所以说如果你在其它NAS上虚拟机部署Windows 11系统如果出现同样的问题,那么今天教程的方案也同样适用于你。

qq_63499861的博客 1万+

深入解析UDS 0x19服务:DTC状态掩码与故障诊断实战

本文深入解析了UDS诊断协议中的核心0x19服务(ReadDTCInformation),重点拆解了DTC状态掩码(DTCStatusMask)的八个状态位及其在故障生命周期中的联动逻辑。通过实战案例,详细说明了从故障发生、确认到清除的全过程,并介绍了如何利用该服务进行深度诊断,包括读取扩展数据(如冻结帧)和避免常见开发误区,是理解汽车ECU故障管理机制的关键。

weixin_29248313的博客 322

try{}catch(Exception e){}异常处理

try{}catch(Exception e){}异常处理

qq_34140311的博客 7073

海康VM加密狗无法识别常见问题排查

海康VM加密狗无法识别常见问题排查

视觉人机器视觉的博客 2696

java 异常处理学习笔记

java异常处理学习笔记 如果你对异常已经很了解,就不用看了。这是写给初学者看的。  基础知识在程序运行时,常常会出现一些非正常的现象,这种情况称为运行错误。根据其性质可以分为错误和异常。 错误:常见的有程序进入死循环,内存泄漏等。这种情况,程序运行时本身无法解决,只能通过其他方法干预。对应的类为Error类异常:常见的有除数为0,数组越界等。这种情况,不向错误

极光 4230

从赛题到实战:一份面向高职“区块链技术应用”赛项的食品溯源系统全栈部署与运维指南

本文为高职院校学生备战“区块链技术应用”技能大赛提供了一份详实的食品溯源系统全栈部署与运维指南。内容涵盖从理解赛题业务逻辑、绘制技术蓝图,到搭建4节点FISCO BCOS联盟链、部署管理平台与智能合约,再到核心运维技能与前后端联调测试的完整流程,旨在帮助参赛者将赛题转化为可运行的实战项目,全面提升区块链全栈开发与运维能力。

weixin_29172201的博客 646

脉冲变压器电感选型参数,结构原理,工艺与注意问题总结

脉冲变压器电感简称脉冲变压器,是一种特殊类型的变压器,主要用于处理脉冲信号。它的主要特性是能够在短时间内承受高电压和大电流。脉冲变压器主要用于开关电源、脉冲功率放大、雷达脉冲调制等领域。本文对脉冲变压器的工作原理,结构特点,工艺流程,选型参数及设计注意事项进行总结。

fydar的博客 1340

JAVA基础学习笔记-day08-异常处理

在使用计算机语言进行项目开发的过程中,即使程序员把代码写得尽善尽美客户输入数据的格式问题读取文件是否存在网络是否始终保持通畅等等。异常:指的是程序在执行过程中,出现的非正常情况,如果不处理最终会导致JVM的非正常停止。注意:异常指的并不是语法错误和逻辑错误。语法错了,编译不通过,不会产生字节码文件,根本不能运行。代码逻辑错误,只是没有得到想要的结果,例如:求a与b的和,你写成了a-b在编写程序时,经常要在可能出现错误的地方加上检测的代码,如进行x/y运算时,要检测分母为0数据为空。

天才在左,疯子在右,而我只想做个不折不扣的乐天派 179

检索增强生成(RAG)、微调(Fine-tuning)与知识蒸馏(Knowledge Distillation):核心差异与技术选型指南

在自然语言处理(NLP)领域,大型预训练语言模型(如GPT、BERT系列)的崛起彻底改变了技术生态。面对实际业务场景中模型效果优化与资源效率平衡的永恒命题,开发者主要依赖三大技术路径:检索增强生成(Retrieval-Augmented Generation, RAG)、模型微调(Fine-tuning)和知识蒸馏(Knowledge Distillation)。本文将通过技术原理拆解、典型应用场景对比和实战选型策略三个维度,深入解析这三种技术的本质差异。

fudaihb的博客 1826

java中的try-catch-finally异常处理(学习笔记)

java中的try-catch-finally异常处理(学习笔记)

10年职场两茫茫,35岁凄凉奈若何 158

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

Java学习笔记——异常处理

这里就很自由了,就算考试中有些异常记不住也可以通过自定义躲过一劫(当然了这种机会怕是不多)常见步骤大致如下:(1)常见自定义异常类(2)在方法中通过throw关键字抛出异常对象(3)如果在当前异常的方法中处理异常,可以使用try…catch语句块进行捕获和处理,否则在方法的声明处通过throws关键字指明要抛出给方法调用者的异常,继续进行下一步操作。(4)在出现异常的方法的调用者中捕获并处理异常。

2301_79907302的博客 619

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

Java异常处理学习笔记

Java异常处理 一、概述 编写代码过程中难免会出现一些问题,例如客户端的输入格式、网络是否流畅等。此时程序员则需要考虑处理异常,Java语言中发生的不正常情况称为"异常"(开发过程中的语法错误或逻辑错误不是异常) Java程序在执行过程中发生的异常事件可分为两类: Error:Java虚拟机无法解决的严重问题。如JVM系统内部错误、资源耗尽等严重情况。例如StackOverflowError和OOM Exception:其他因编程错误或偶然的外在因素导致的一般性问题,可以使用针对性的代码进行处理

!不将就的博客 447

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

《Java异常处理》学习笔记

1.异常处理对性能的影响 一般来说,在Java程序中使用try…catch语句不会对应用的性能造成很大的影响。仅仅当异常发生时,Java虚拟机需要执行额外的操作,来定位处理异常的代码块,这是会对性能产生负面影响。如果抛出异常的代码块和捕获异常的代码块位于同一个方法中,这种影响就会小一些;如果Java虚拟机必须搜索方法调用栈来寻找异常处理代码块,对性能的影响就比较大了。尤其当异常处理代码块位于调用

lzh398651363的博客 693

java学习笔记8——异常处理

异常处理机制二: throws。

qq_58956810的博客 680

Java之异常处理学习笔记

异常的概念概念:在程序运行时打断正常程序流程的任何不正常的情况称为错位或异常。错误类型:一般性的错误: 输入数据在保存到数组过程中引起超界、除数为零、输入数据不合法等 致命性的错误: 系统硬件故障、网络通讯中断等引起的无法恢复性错误处理方式:向用户通知错误 保存全部工作 让用户适当地退出程序java.lang.Throwable 类是所有异常类的父类。Java处理的异常大致分为3类:Err

ONE MORE TRY 716

java202304java学习笔记第六十四天-ssm-异常处理的方式

java

qq_41632427的博客 83

《java学习笔记》之异常处理机制

学习技术一定要制定一个明确的学习路线,这样才能高效的学习,不必要做无效功,既浪费时间又得不到什么效率,大家不妨按照我这份路线来学习。大家不妨直接在牛客和力扣上多刷题,同时,我也拿了一些面试题跟大家分享,也是从一些大佬那里获得的,大家不妨多刷刷题,为金九银十冲一波!《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》点击传送门即可获取!习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!**

2401_83916394的博客 1133

Java学习笔记——Java 异常处理

Java 的异常机智主要依赖于 try、catch、finally、throw、throws; 一、异常处理机制 1. 使用 try…catch 捕获异常 try{ //业务实现代码 } catch (Exception e){ alter 输入不合法 goto retry } 执行 try 块里的代码时出现异常,系统自动生成一个异常对象;该异常对象被提交给 Java 运行时环境,这个过程被称为 抛出(throw)异常; 当 Java 运行时环境收到异常对象时,会寻找能处理该异常对象的 cat.

Zzz5270的博客 540

Java学习笔记一异常处理

如果执行try块里的业务逻辑代码时出现异常,系统自动生成一个异常对象,该异常对象被提交给Java运行时环境,这个过程被称为抛出异常。当Java运行时环境收到异常对象时,会寻找能处理该异常对象的catch块(依次判断该异常对象是否是catch块后异常类或其子类的实例),如果直到合适的catch块,则把该异常对象交给该catch块处理,这个过程被称为捕获异常;如果Java运行时环境找不到铺货异常的ca...

肥叔菌的博客 8990
上一篇: SQL 外链接多表查询
下一篇: javascript
transit136
博客等级 码龄20年 14粉丝 42原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值