Java中异常的学习

news/2025/1/15 16:49:18/文章来源:https://www.cnblogs.com/BingBing-8888/p/18412677

异常


目录
  • 异常
    • 程序错误类型
    • 什么是异常?
    • 异常的主要作用?

在实际的程序设计中,并非所有错误都能在编译期间被侦测到。运行时错误会引起异常(exception,也称例外):程序运行过程中出现的事件,它中断正常的程序控制流程。没有异常处理代码的程序,可能会非正常结束,有时候会引起严重问题。

程序错误类型

程序中的错误可能有三种类型:编译错误、运行时错误、和逻辑错误。

(1)编译错误
是指编写的程序存在语法问题,未能通过源代码到目标代码的编译过程而产生的错误,它们由语言的编译系统负责检测和报告。

(2)运行时错误
是指在程序运行过程中,如果环境发现了一个不可能执行的操作,就会出现运行时错误

(3)逻辑错误
是指程序没有按照预期的方案执行。

什么是异常?

在程序执行中,任何中断正常程序流程的异常条件就是错误或异常 。

异常的主要作用?

异常的便利性
在不支持异常处理的语言中,语言本身在标识异常类型方面没有任何帮助,也不提供异常处理的工具

如在C语言中,

程序通常是通过返回一个非正常值(-1或null)表示错误和异常的。

这样,程序员为了检查可能发生的异常情况,就需要在程序中设置一些变量或者说标记量。

并使用很多的if-else语句。同时他还必须非常清楚地知道是什么导致了异常的产生,

以及异常的确切含义。

而在Java中,

用户不必专门去编写这些测试代码就可以比较容易地发现异常。

在默认情况下,异常会输出一个错误信息,然后中止程序的执行。

为了更好地处理异常情况,程序开发人员通常会在程序中定义异常处理代码块来捕获和处理异常。

这样,当异常情况发生时,一个代表该异常的对象会被创建,并在产生异常的方法中被引发。

该方法可以选择自己处理异常,也可以抛出该异常。

异常的健壮性
无论哪一种情况,异常最终都应该被捕获并做出相应的处理。

使用异常类的好处就在于它为程序调试提供了很大的方便,并能保证程序在出现异常的情况下

仍然能够继续执行下去,从而提高了程序的健壮性。

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

信息学奥赛初赛天天练-88-CSP-S2023阅读程序1-数据类型、unsigned 关键字、二进制、位运算、左移、右移、异或运算

信息学奥赛初赛天天练-88-CSP-S2023阅读程序1-数据类型、unsigned 关键字、二进制、位运算、左移、右移、异或运算 PDF文档公众号回复关键字:202409132023 CSP-S 阅读程序1 判断题正确填 √,错误填 ⨉ ;除特殊说明外,判断题 1.5 分,选择题 3 分,共计 40 分) 01 #include …

来云栖大会!探展云上开发,沉浸式体验云原生 + AI 新奇玩法

计算馆将展示中国最先进的云计算产业链全景,从底层硬件到数据创新,从云计算基础设施到数据管理服务、人工智能平台和模型服务,全景式呈现 AI 时代云计算最新技术形态和产品进展。2024 云栖大会来了! 本届云栖大会将于 9 月 19 日至 9 月 21 日 在杭州云栖小镇召开 汇集全球…

最后的记录

最后的挣扎但是做的题太少了根本算不上长征。 写这个是因为 NOIP2024 剩百日,这他妈是最后一次了,就让我拿个一等吧,别无所求了。 把之前做过的题都重新总结一遍,怎么说也都能吃透了。 P6880 JOI 2020 Final] オリンピックバス 给一个有向图,经过边有代价 \(C_i\),可以反…

ENSP 某台设备出现乱码的情况

故障现象:新建拓扑没问题,打开其他人发的拓扑就会出现乱码(或者打开ENSP的示例也会出现问题),配置文档正常可以正常导出不受影响。 故障发现时间:2022年底 故障原因:windows系统BUG,常见于inter 13代CPU(例如I5-13500) 处理方法1:重装系统(一劳永逸) 处理方法2:例…

10、Linux文本编辑器

文本编辑器 常见文本编辑器 WindowsNotepad(记事本) Sublime UltraEditLinuxVI/VIM nano Emacs Sed gedit KateVI 和 VIM 的区别VI全称:Visual Interface 创建时间:1976年 创建者:Bill JoyVIM全称:VI IMproved,即 VI 的升级版 创建时间:1991年 创建者:Bram Moolenaar …

vue2 + scss 全局引入 变量使用

百度以及时AI帮助说的配置方式都大差不差,但是我的总是报错,意思就是变量找不到,报错如下 For a guide and recipes on how to configure / customize this project,<br> 然后AI和文章写的vue.config.js的配置内容基本如下module.exports = {css: {loaderOptions: {scss:…

2024金砖大赛网络安全赛项区域选拔赛-简单的rce

1. Echo写入一句话木马蚁剑连接木马根目录下找到flag

Google Colab 简单使用

使用Google Colab需要谷歌账号和一点点魔法。注册好账号,找到我的云盘,可以点击右上角的log 跳转。我的云端银盘这里可以选择上传文件还是文件夹,还可以新建文件夹然后在这个文件夹中选择你要上传的文件。例如我这创建了一个train_test 的文件夹,然后上传了 test_ScVgIM0.z…

Go runtime 调度器精讲(四):运行 main goroutine

原创文章,欢迎转载,转载请注明出处,谢谢。0. 前言 皇天不负有心人,终于我们到了运行 main goroutine 环节了。让我们走起来,看看一个 goroutine 到底是怎么运行的。 1. 运行 goroutine 稍微回顾下前面的内容,第一讲 Go 程序初始化,介绍了 Go 程序是怎么进入到 runtime 的…

Python网页应用开发神器Dash 2.18.1稳定版本来啦

本文示例代码已上传至我的Github仓库:https://github.com/CNFeffery/dash-master Gitee同步仓库地址:https://gitee.com/cnfeffery/dash-master大家好我是费老师,上周Dash发布了2.18.0新版本,并于今天发布了可稳定使用的2.18.1版本(自古.1版本最稳✌),今天的文章中就将针…

吊打面试官!从多维度理解架构

大家好,我是汤师爷~ 在工作当中,我们经常会听到以下说法:产品负责人说,现在的业务架构太复杂,需要仔细梳理下。 技术领导说,这个项目很复杂,需要做下系统架构方案评审。 研发经理说,这次秒杀活动访问量非常大,需要用到高并发架构方案。 一线研发说,互联网大厂都会用到…