异常:try-catch处理异常

Yolov8-pose关键点检测:loss优化 | LRM loss困难样本挖掘,提升难样本、遮挡物等检测精度 LRM loss应用到能够大幅提升pose遮挡物性能 阅读详情

Exception:在程序的运行过程中,发生了不正常的现象,阻止了程序的运行,我们称之为发生异常

用if-else堵漏洞的缺点(基本不会用if-else来处理异常)

(1)代码臃肿,业务代码和处理异常的代码混在一起

(2)可读性差

(3)程序员需要花费大量的精力来维护这个漏洞

(4)程序员很难堵住所有漏洞(异常)

一:基于if-else处理异常缺点太多,所以Java中专门出了一个异常处理机制:“异常三连”try-catch-finally

二:异常怎么看:

第一行:提示异常的类型

最后一行:提示异常出现的位置

三:捕获异常(用try-catch)

import java.util.InputMismatchException;
import java.util.Scanner;

public class num5 {
public static void main(String[] args) {
    System.out.println("<<<<<<使用try.....cath处理输入异常>>>>>>");
    num5 n=new num5();
    n.sr();
    
}
public void sr(){
    Scanner sc=new Scanner(System.in);
    System.out.print("请输入一个数字:");
    try {
        sc.nextInt();
        System.out.println("程序运行结束,谢谢你的配合!!!");
    } catch (InputMismatchException e) {
        // TODO: handle exception
        System.out.println("你输入的不是一个有效数字,请重新输入!");
        sr();
    }
}
}
 

原理:把可能出现异常的代码放入try代,然后码块中,让后将异常封装为对象,被catch后面的()中的那个异常对象接受,接受以后,执行catch后面的{}里面的代码,然后try-catch后面的代码该怎么执行就怎么执行。

情况:

(1)try中没有异常,catch中代码不执行

(2)try中没有异常,catch进行捕获

如果catch中异常类型和你的异常类型匹配的话:走catch中的代码进行捕获

如果catch中异常类型和你的异常类型不匹配的话:不走catch中的代码,没有捕获成功,程序相当于遇到异常,中断了,后续代码不执行

注意:

(1)try中如果出现异常,然后catch捕获成功的话,那么try中后续的代码是不会执行的

(2)如果catch捕获异常成功,那么try-catch后面的代码该执行还是执行,没有影响

(1)在什么情况下,try-catch后面的代码不执行?

1.throw抛出异常的情况

2.catch中没有正常的进行异常捕获

3.在try中遇到return

(2)怎么样才可以将try-catch后面的代码必须执行?

只要将必须执行的代码放入finally中,那么这个代码无论如何一定执行

(3)return和finally执行顺序?

先执行finally最后执行return

(4)什么代码会放在finally中?

关闭数据资源,关闭io流资源,关闭socket资源

(5)有一句代码很厉害,它可以让finally中的代码不执行

system.exit(status:0);终止当前的虚拟机执行,以下代码就不执行了

C++怎么学?零基础也可以,一份完整学习路线图助你搞定! 提供一条清晰、系统且实践导向的C++学习路径。从基础语法、面向对象、泛型编程、异常处理,逐步深入STL、智能指针、并发编程等现代C++高级特性。无论是新手还是希望提升,通过系统学习与项目实践,助您将理论知识转化为实际解决问题的能力。 阅读详情

相关推荐

Tesseract-Ocr踩坑下载以及进行检验

1 OCR,即Optical Character Recognition:光学字符识别,是指通过扫描字符,然后通过其形状将其翻译成电子文本的过程。下载完成后进行解压找到这两个,然后复制到之前下载Tesseract-Ocr的tessdata文件下。可能会出现报错说chi下载的问题咱们不用管继续ok让它先下载完毕,后续会有下载chi的步骤。四、检验tesseract使用(将以下图片进行下载我这里将以下图片命名为3.png)我这里选的是2024年的版本如果下载不了;4 在安装的时候(找到下载的exe文件,双击)

m0_51428325的博客 1915

JavaScript(JS)错误处理(一) “try...catch”,“try...catch...finally”,“throw”抛出自定义Error,全局错误处理

错误处理,“try…catch” 不管你多么精通编程,有时我们的脚本总还是会出现错误。可能是因为我们的编写出错,或是与预期不同的用户输入,或是错误的服务端响应以及其他数千种原因。 通常,如果发生错误,脚本就会“死亡”(立即停止),并在控制台将错误打印出来。 但是有一种语法结构 try...catch,它使我们可以“捕获(catch)”错误,因此脚本可以执行更合理的操作,而不是死掉。 “try…catch” 语法 try...catch 结构由两部分组成:try 和 catch: try { // 代码

秋天,黄叶坠地,凉风有信。 3090

VLA算法总结对比——RT1 / RT2 / Pi0 / Octo/ RDT / OpenVLA

本文主要针最近比较经典的VLA算法进行对比总结,暂不涉及到代码细节和实验细节上的展开,仅仅是从大面上掌握下目前VLA的一些思路和方法。

weixin_44580210的博客 9496

写了挺久的代码,却还被“异常“支配?

大家好,我是小菜,一个渴望在互联网行业做到蔡不菜的小菜。可柔可刚,点赞则柔,白嫖则刚! 死鬼~看完记得给我来个三连哦! 本文主要介绍 Java 中的异常 如有需要,可以参考 如有帮助,不忘 点赞 ❥ 微信公众号已开启,小菜良记,没关注的同学们记得关注哦! 面试官: 请说一下你平时比较常遇到的运行时异常 小菜: 好的,我平时比较常遇到的异常有:NullPointException (空指针异常) 、ClassNotCastException (类型转换异常) 、IndexOutOfBoundExc

Cbuc丶的博客 381

用Python写个彩票小助手:自动生成双色球/大乐透号码并保存到桌面

本文介绍如何使用Python开发一个智能彩票助手,实现双色球和大乐透号码的随机生成与桌面文件保存功能。通过详细的代码示例,包括随机号码生成、文件操作、用户交互和错误处理,帮助Python初学者快速掌握实用工具开发技巧。

weixin_42566121的博客 516

hfss仿真软件入门教程

hfss仿真软件入门教程 1.模型建立 1.1在project种选择insert hfss design 1.2.在hfss-》solution type 中选择modal 1.3.在moderler-》中选择units 设置单温为mm 1.4进行画图操作,这里为提高效率直接导入一个已经画好的cad图。使用modeler-》import 2.设置端口 2.1在更改模型中的材料 选择需要更改材料...

xunshui2007的博客 3万+

Java异常try...catch...finally与IllegalMonitorStateException异常原因

1、异常分类 JDK中定义了一套完整的异常机制,所有异常都是Throwable的子类,分 为Erro和Exception。Error是一 种非常特殊的异常类型,它的出现标识着系统发生了不可控的错误,例如StackOverflowError、OutOfMemoryError。针对此类错误,程序无法处理,只能人工介入。Exception 又分为checked异常( 编译时异常)和unchec...

qq_38658642的博客 562

2022年TI杯模拟电⼦系统设计专题邀请赛——李萨如图形演示装置

本次装置主要是对输入的正弦信号进行频率变换,并将原输入正弦信号作为 X 轴信号、变换后的正弦信号作为 Y 轴信号,绘制李萨如图形。采用 EK-TM4C123GXL 板卡作为主控;频率变换采用“锁向环+计数器”实现 1-5 倍频的频率变换控制;李萨如图形采用两个 AD通道采集原输入的正弦信号作为 X 轴信号和频率变换后的正弦信号作为 Y 轴信号,绘制李萨如图形。

qq_45890466的博客 7768

java catch匹配忽略_Java 语法 try catch使用容易忽略的细节 BigDecimal

try catch使用细节一. try catch的使用方式容易理解,两者最终都要执行finally中的代码,而当return在try和catch中又会有什么效果?如果我们做一个简单的例子就会发现,如果返回值的类型为常规变量时,如return在try或catch中,如果返回值在finally中做出了改变,最终的返回值时不受影响的。但返回值类型如果是集合等,返回值的类型就会因为finally中的改变...

weixin_31256263的博客 549

XCP实战系列介绍01-测量与标定底层逻辑介绍

XCP-测量与标定底层代码实现介绍,通过对相关API调用关系介绍加深开发人员对其功能的了解。

initiallizer的博客 1万+

Microsemi Libero系列教程(全网首发)

关于Libero IDE和Libero SoC Libero分为Libero IDE和Libero SoC,Libero IDE最新版本是v9.2 SP3(2016年4月4日)已经不再更新维护了,而Libero SoC是Libero IDE的升级版,官方推荐的开发工具,文中的Libero指的是Libero SoC。 Libero SoC Libero® SoC是Microsemi(美高森美)官方...

whik1194的博客 2万+

Java 异常处理最佳实践

Java 异常处理最佳实践 1 永远不要在 catch 代码块中忽略异常 这条原则放在第一位。不要忽略你遇到的异常,要么将其抛出,要么记录日志,如果确实是可以不做处理的异常,也请将原因写catch块的注释里面。因为如果忽略了异常,你将永远不知道异常的原因,将来也无法避免它。 1.1 记录日志 catch(NoSuchMethodException ex){ log.error(ex); } 1.2 重新包装抛出异常 catch(NoSuchMethodException ex){ thro

Kaybee - 练级之路 1500

实战:RK3568 Android14 调试 ES8388 音频驱动 (MIC 篇)

这个板子的MIC设计使用了硬件自动切换方案,极大简化了软件层面的逻辑。我们不需要根据耳机插拔事件去编写复杂的路由切换代码,只需要守住 LIN1/RIN1 这一个入口,配置好增益,剩下的交给那颗 SGM3157 芯片即可。祝您的录音功能调试顺利!

qq_33427070的博客 1678

【c#】异常处理:try catch throw

异常处理,是编程语言或计算机硬件里的一种机制,用于处理软件或信息系统中出现的异常状况(即超出程序正常执行流程的某些特殊条件)。 也就是说,在程序运行时出现的任何意外或异常情况时,处理这种意外或情况的方法,叫做异常处理。 C#编程语言本身就提供了这种异常处理机制。 异常处理的四个关键字:Try Catch Throw Finally Try:一个try块标识了一个将被激活的特定的异常的代码块

幸遇三杯酒好,况逢一朵花新 6416

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

java中的异常及异常处理 :try、catch、finally、throw、throws

这里写自定义目录标题【异常】主要内容第一章 异常1.1 什么是异常1.2 异常体系1.3 异常的分类1.4 异常是如何产生的第二章 处理异常的方式2.1 抛出异常throw2.2 声明异常throws2.3 捕获异常try…catch2.4 finally 代码块2.5 Objects非空判断2.6 异常注意事项第三章 自定义异常3.1 概述3.2 自定义异常的练习 【异常...

maker.dong的博客 1090

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

处理异常的两种方式:throws和try catch

处理异常的两种方式 上抛和捕获,即throws和try catch package com.jl.learning.exception; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; /* * 处理异常的第一种方式:在方法声明的位置上使用throws关键字抛出,谁掉用这个方法,就抛给谁。抛给调用者来处理 * 这种处理异常的态度:上抛 * 处理异常的第二种方

Jiangh3293的博客 1096

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

异常处理:try-catch

异常处理 目录:①什么是异常 ②异常处理的标准格式、语法 ③try+catch的处理流程 一、什么是异常? 异常是在程序中导致程序中断运行的一种指令流。 例如,现在有如下的操作代码: public class ExceptionDemo01{ public static void main(String argsp[]){ int i = 10 ; int j = 0 ; System.out.println("============= 计算开始 =") ; int temp = i / j ; // 进

Zzysq的博客 701

C++学习探究:异常处理(try,throw,catch)总结

异常处理(try,throw,catch) 1、异常错误和程序设计错误的区别 在这里,我们首先区分一下异常错误和程序设计错误: 异常错误:在程序运行阶段由于系统异常原因而产生的错误。如果不处理异常错误。程序执行时遇到异常情况就会突然停止或者失控,使用户感到莫名其妙。 程序设计错误:指程序员在设计时由于人为因素所产生的错误。如果不处理程序设计错误,程序就不能通过编译检查或者运行结果不对。 2、C...

jianbai_的博客 902

C++ 异常处理:try-catch-throw 的基本用法

其实 try-catch-throw 的核心逻辑很简单:用 try 监控风险代码,用 throw 抛出异常警报,用 catch 捕获并处理警报。掌握了今天讲的基本用法,就能应对大部分简单的异常场景。后续我们还可以聊聊更高级的用法,比如自定义异常类、异常的传递、noexcept 关键字等。最后,建议大家把上面的示例代码复制到编译器中运行一遍,亲手测试不同的输入,感受异常处理的流程——实践比死记语法更重要哦~

qq_43402143的博客 773

C# try catch finally:异常处理

C# try catch finally:异常处理 在 C# 语言中异常与异常处理语句包括三种形式,即 try catch、try finally、try catch finally。 在上述三种异常处理的形式中所用到关键字其含义如下: try:用于检查发生的异常,并帮助发送任何可能的异常。 catch:以控制权更大的方式处理错误,可以有多个 catch 子句。 finally:无论是否引发了异常,finally 的代码块都将被执行。 下面我们将分别为大家讲解这三种形式的应用。 try catch 在 t

weixin_47257626的博客 1442

【JAVA】try-catch结构:异常处理的使用

try-catch是 Java 和许多其他编程语言中用于异常处理的关键字组合,它允许程序员优雅地捕获和处理运行时可能出现的错误。

wangyufei0815的博客 1万+

Java 异常处理:使用 throws 和 try-catch 的区别

当我们编写Java代码时,可能会遇到需要处理异常的情况。我们可以使用 throws 和 try-catch 关键字来处理异常,具有不同的使用场景

weixin_62079735的博客 408

C++异常处理:try-catch机制、RAII与noexcept实战指南

异常处理是编程中管理运行时错误的核心机制,它允许程序在遇到意外情况时进行可控的响应而非直接崩溃。其原理基于抛出(throw)、捕获(catch)和栈展开(Stack Unwinding),通过中断正常执行流并沿调用栈回溯来寻找匹配的处理代码。这一机制的技术价值在于提升程序的健壮性和可维护性,尤其在资源管理和错误恢复方面至关重要。在实际应用中,异常处理广泛用于文件I/O、网络通信、内存分配等可能失败的操作场景。结合RAII(Resource Acquisition Is Initialization)原则,可

weixin_34327761的博客 464

C++异常处理:从throw、try、catch到RAII与异常安全的最佳实践

在软件工程中,错误处理是构建健壮系统的核心机制。传统错误码方式在复杂调用链中会导致代码臃肿、逻辑分散。C++异常机制通过分离正常逻辑与错误处理,提供结构化解决方案。其原理基于栈展开(Stack Unwinding),异常抛出后自动回溯调用栈并析构局部对象。技术价值在于实现异常安全(Exception Safety)保证,结合RAII(Resource Acquisition Is Initialization)模式确保资源自动释放。应用场景涵盖网络通信、文件操作、内存管理等可能发生意外错误的模块。本文深入解

weixin_30813225的博客 397

JS try catch用法:异常处理

结构,也就是上下文环境已经改变,所以无法捕获异步任务里的错误。为了捕获到计划的函数中的异常,那么。块中的语句首先被执行。如果运行中发生了错误,控制就会转移到位于。能工作,代码必须是可执行的。换句话说,它必须是有效的。包裹了计划要执行的函数,该函数有延迟,这时。可以让异步代码同步执行,所以可以进行异常捕获。块的语句被跳过不执行。块中的语句执行完毕,或者没有发生任何错误。也不会捕获微任务的异常,道理同。内部的错误不会冒泡出来,而是被。块中的语句执行完毕,最后将执行。块中语句,其中括号中的。

前端工程师 · Vue 生态深耕者,专注多端与工程化 6486

C++异常处理:try、throw、catch

程序在运行时,总是会遇到一些错误,这些错误或者是导致程序无法运行,例如操作空指针,或是不符合正常运行的规律,例如除以0。因此,在C++程序当中就必须添加对应异常处理机制,在检测到指定的程序异常时,为保证程序正常运行,需要跳转至异常处理程序当中。

Dream_No_More的博客 627
上一篇: 面向对象--接口
下一篇: 异常:多重catch处理异常
Java_gml
博客等级 码龄5年 324粉丝 44原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值