异常处理:从生活中的插曲到代码中的挑战

文章目录

    • 1. 异常:生活中与代码中的无奈
    • 2. 异常的体系结构:错误与异常
    • 3. 异常处理:抓取异常,保障稳定
      • 3.1 throw 和 throws
      • 3.2 try...catch
      • 3.3 finally
    • 4. 自定义异常:灵活应对特定问题
    • 结语

在这里插入图片描述

在人类的日常生活和编程世界中,异常都是无法绕过的存在。无论是被狗咬了一口还是感冒了,抑或是在代码中遭遇了空指针或者数组越界等问题,我们都需要面对异常,进行妥善的处理。在本文中,我们将深入探讨异常的概念、体系结构以及处理方式,帮助您更好地理解和应对异常。
在这里插入图片描述

1. 异常:生活中与代码中的无奈

异常,顾名思义,就是一种与正常情况不符的事件或情况。在生活中,我们时常遇到各种异常,比如拉肚子、被狗咬等。而在编程中,异常则是指在程序执行过程中遇到的问题,如空指针、数组越界、类型转换异常等。就如同生活中我们会感到不适,需要采取相应措施治疗,代码中的异常也需要得到妥善处理,以确保程序的正常运行。
在这里插入图片描述

2. 异常的体系结构:错误与异常

Java的异常体系结构被分为错误和异常两大类,它们都继承自Throwable类。

  • 错误(Error):这是由Java运行时产生的系统内部错误或资源耗尽引起的,与代码本身无关。通常的处理方式是通知用户并终止程序。例如,NoClassDefFoundError表示找不到类定义,OutOfMemoryError表示内存耗尽。

  • 异常(Exception):异常又分为编译时异常和运行时异常。

    • 编译时异常:需要在代码编写阶段处理的异常,例如IO异常等。
    • 运行时异常:在程序运行过程中可能发生的异常,如空指针、数组越界等。
      在这里插入图片描述

3. 异常处理:抓取异常,保障稳定

在面对异常时,我们需要有效地处理它们,以保障程序的稳定性和健壮性。以下是异常处理的几种方式:

3.1 throw 和 throws

  • throw:在方法体中抛出异常,通常使用new Exception创建异常对象并抛出。

  • throws:在方法声明上标明可能抛出的异常,可以同时抛出多个异常,使用逗号分隔。如果多个异常存在父子类关系,可以只处理父类异常。

3.2 try…catch

使用try块包裹可能发生异常的代码,并在catch块中捕获异常并进行处理。应该先捕获子异常,再捕获父异常,以确保异常的准确处理。

try {// 可能发生异常的代码
} catch (IOException e) {throw new RuntimeException(e);
} catch (Exception e) {// 收集异常信息
}

3.3 finally

无论是否发生异常,finally代码块中的代码都会被执行。通常用于资源的关闭操作,以确保资源得到及时释放。

try {// 可能发生异常的代码
} catch (Exception e) {// 收集异常信息
} finally {System.out.println("资源关闭中....");System.out.println("资源已经关闭....");
}

在这里插入图片描述

4. 自定义异常:灵活应对特定问题

在特定场景下,Java允许我们自定义异常类,从而更灵活地应对特定的问题。我们可以定义一个继承自Exception的类,通过这个类创建自己的异常对象,并在代码中抛出。

public class MyCustomException extends Exception {// 构造方法public MyCustomException(String message) {super(message);}
}// 使用自定义异常
try {// 可能发生异常的代码throw new MyCustomException("自定义异常信息");
} catch (MyCustomException e) {System.out.println("捕获自定义异常:" + e.getMessage());
}

在这里插入图片描述

结语

无论是生活中的小插曲还是代码中的问题,异常都是我们不可回避的现实。通过本文的介绍,我们对异常的概念、体系结构和处理方式有了更深入的了解。合理处理异常,可以有效地提升程序的稳定性和可靠性,确保程序在各种情况下都能够正常运行。让我们在编程的世界里,牢记异常处理的重要性,编写出更加健壮的代码。

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/1382294.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

刘涛入职阿里,年薪超过欧阳娜娜!揭秘阿里巴巴的明星员工和职级薪资!

【文末有送书福利!】 来 源:网络整合 继前段时间欧阳娜娜加入阿里之后,现又有刘涛入职阿里成为了聚划算官方优选官! 一时,阿里巴巴的职级薪资体系引起广泛关注,不少HR看到后纷纷表示:马云要HR吗…

移动硬盘在电脑上的设备和驱动器中没有读出来,另一台电脑上是好的

今天不知道怎么回事,移动硬盘插到台式机上,设备和驱动器突然就没有读出来,以前都能读出来的,但是右下角硬盘的设备标志显示出来了。 插到另一台电脑上又可以读出来。 不放弃的反复试了几次还是一样。 网上描述的也跟我的情况不一…

关于电脑雷电3、雷电4、USB3.1/3.2全功能Type-C接口能否直接连接Type-C耳机做出如下解释

关于电脑Type-C接口能否直接连接Type-C耳机做出如下解释 1、电脑Type-C接口大多数未配置音频解码器(物理设备),所以直接连接电脑无任何反应(这是硬件问题,不是安装一个驱动能解决的,不管是雷电3、雷电4、U…

计算机控制菜单在哪里,电脑菜单在哪里

电脑菜单根据系统会分布在不同位置,如果是Windows系统,位置在屏幕左下角,点击之后可查看最近使用的程序,以及文档、图片、音乐等等;如果是macos系统,电脑菜单在屏幕左上角,点击苹果图标后可查看系统信息、系…

lscpu的各个参数是什么意思?

$ lscpu Architecture: x86_64 #架构 CPU op-mode(s): 32-bit, 64-bit #运行方式 Byte Order: Little Endian #字节顺序 CPU(s): 96 #逻辑cpu数 On-line CPU(s) list: 0-95 #在线cpu Thread(s) per core: 2 #每个核包含线程…

腾讯高级音视频架构师郭亮:解密互动直播技术

https://www.oschina.net/news/77113/decryption-interactive-broadcast-technology 2016年9月10日,第52期【OSC源创会】在珠海圆满落幕,350余名OSCer齐聚报业大厦,聆听了一场诚意满满、干货多多的技术分享盛会。 本期源创会由5位讲师分别针…

一招让你快手抖音上热门拍摄拥有源源不断的素材军火库-阿甘电商

大家好今天我们来聊聊自己在原创抖音或者快手短视频的过程中会遇到哪些问题。 一、原创素材哪里找? 1、自己瞎琢磨:难度大、火起来的概率低、一旦火非常火 2、做搬运和微创新:各大视频网站找素材,去水印、合拍加工 3、原创改编思维: ①抄:平台什么视频火抄什么 ②重…

你家的猫也能来段东北话了:快手快影一键「智能配音」,三种方言随意换,还能配出《舌尖》风...

鱼羊 发自 凹非寺量子位 报道 | 公众号 QbitAI 日常想给家里的蠢猫拍个视频配个音,需要几步? 不不不,现在有了AI的加持,只需打开App,输入文本,秒秒钟就能搞定。 不只是四川话配音,东北老妹音也可…

如何将视频的语音变成文字播放出来?

看到回答中很多人分享的是软件,每次使用都需要下载,给大家分享两款在线端语音转文字工具,不用下载安装,在线登录就能使用,非常方便。 1、网易见外 网易见外是网易团队上线的一款转文本工具,上线了视频转写…

教育场景下的实时音频解决方案

本文来自网易云信 资深音频算法工程师 李备在LiveVideoStackCon 2018讲师热身分享,并由LiveVideoStack整理而成。在分享中李备详细分析了在线教育的音频需求,以及一般软件音频框架,和行业的挑战。 文 / 李备 整理 / LiveVideoStack 直播回放&…

全媒体运营师胡耀文教你:从0到1搭建直播运营体系

越来越多 To B 企业开始做直播,无论是 SAP/微软/AWS 这样的老牌大厂,还是像很多 SaaS 创新企业,都投入到直播大潮中。疫情爆发后,To B 直播更如雨后春笋般涌现。 很多 To B 企业的朋友都想做直播,但是没想好直播的定…

抖音 K.O. 快手之后还能火多久?

本文来自作者 tepy 在 GitChat 上分享「抖音 K.O. 快手之后还能火多久?论抖音的运营之道」,「阅读原文」查看交流实录 「文末高能」 编辑 | 泰龙 前段时间,朋友圈忽然刮起了妖风,各种鬼畜的抖音短视频在某个晚上突然爆发般增长&am…

使用Python和pymupdf创建简单的PDF阅读器

使用Python和wxPython编写一个简单的PDF阅读器,并展示了PDF文件的内容。 介绍: 在日常工作和学习中,我们经常需要查看和阅读PDF文件。本文将介绍如何使用Python编程语言和wxPython库创建一个简单的PDF阅读器,让我们能够打开文件夹…

苹果股东电话会议:Apple终违Steven Jobs遗愿

编者按:巴菲特(Warren Buffett)最近在接受CNBC电视频道采访时说,乔布斯几年前曾打电话向他询问如何利用苹果公司的现金。巴菲特说,他建议乔布斯回购股票,前提是如果乔布斯认为股价被低估了的话。苹果公司首席执行长库克在联合创始…

外汇天眼:Apple与MetaQuotes之争!谁是下一个Apple?谁会成下一个MT4/5?

手机巨头Apple 从其应用商店App Store中下架领先的交易软件MetaTrader4(MT4)和 MetaTrader5(MT5)引发了外汇市场热议。 虽然截止发稿,Apple以及交易软件MT4/5供应商MetaQuotes均未对此次事件发表任何评论,…

中国银行成都网点地址,电话,成都银行分布,位置(总是找不到银行的支行名字,火大!干脆来个全收录)

中国银行成都市武侯支行火车南站分理处 成都市人民南路四段51号 610041 中国银行成都市武侯支行双楠分理处 成都市双楠谊苑 610041 中国银行成都市武侯支行华西分理处 成都市一环路南三段13号华西宾馆一楼 610041 中国银行武侯支行棕南分理处 成都市科华北路58号 610041 中国银…

分析师意外下调评级为中性,苹果财报能否改变科技股走向?

新年的投资热情为苹果市值短暂达到3万亿美元铺平了道路,这是有史以来第一家跨过这一门槛的美国公司。尽管许多华尔街分析师和投资者对苹果的评级为看涨,但目前Seeking Alpha的量化评级给苹果的评级为中性(HOLD)。 苹果将于1月27日公布2022财年第一季度财…

美国苹果股价走势图(抢先看美股三大指数新动态)

美股三大指数周三尾盘跳水全线收跌,道指跌逾150点,投资者正密切关注美国5月CPI数据,以判断通胀上升是否是暂时的。恐慌指数VIX涨4.98%,报17.92点。 截至收盘,道指跌152.68点,报34447.14点,跌幅…

nodejs+vue+elementui健身俱乐部网站rix1z

为设计一个安全便捷,并且使用户更好获取本健身俱乐部管理信息,本文主要有安全、简洁为理念,实现用户快捷寻找健身课程、健身器材、会员卡信息、新闻公告等信息,从而解决健身俱乐部管理信息复杂难辨的问题。该系统以vue架构技术为基…

【Linux从入门到精通】文件描述符详解

文章目录 一、引言 二、引入文件描述符fd 2、1 观察fd的值 2、2 fd保存的位置 三、详解文件描述符fd 3、1 为什么要有文件描述符呢 3、2 到底什么是文件操作符呢 四、文件描述符的使用 4、1 验证文件描述符 4、1、1 验证stdin、stdout、stdout 4、1、2 验证fd值的大小顺序 4、…