首页 > 其他分享 >软件构造课程思考5

软件构造课程思考5

时间:2023-05-22 10:45:30浏览次数:30  
标签:exception 健壮性 捕获 finally 课程 思考 catch 软件 异常

健壮性和正确性

可靠性=正确性+健壮性

健壮性:面向用户

正确性:面向开发者

private方法只能保证正确性,但面向用户的还需保证健壮性

错误和异常

Error:不是由程序本身引起,由系统限制引起

Exception:自己程序导致的问题,可以捕获,处理

下面绿色的部分表示是由用户输入等引起的,是可预测的,在程序运行时处理

不需要实例化Error,也不需要捕获(捕获了也处理不了)

异常分为:运行时异常(RuntimeException)和其他异常

运行时异常是程序员代码里处理不当造成,其他异常由外部原因造成

Checked and unchecked exceptions

Unchecked exceptions = Error + RuntimeExceptions

两者区分:编译器是否能检查出(编译器不会检查Unchecked exception)

checked exception 必须捕获并指定错误处理器handler,否则编译无法通过

五个处理异常时使用的关键字:try,catch,finally,throws,throw

Unchecked异常也能用try/catch来进行捕获,但大多数时时不需要的,也不应该这样做——掩耳盗铃,对发现的编程错误充耳不闻!

尽量用unchecked exception来处理编程错误——使代码更易读

错误可预料,不可预防,但有手段从中恢复,用checked exception

规约中需要包含所有该方法抛出的checked exception

异常的抛出需要满足LSP原则(协变):子类不能比父类抛出更多、更宽泛的异常

可自定义异常类

异常发生后如果找不到处理器,就终止程序,在控制台打印出 stack trace

异常只有两种处理方法:向上抛 / 捕获

如果父类型的方法没有抛出异常,那么子类型中的方法必须捕获所有的checked exception

try- catch -finally:无论是否出现异常,finally块中包含的语句都会被执行(一般为对资源的释放、管理等)

多个catch块不是依次顺序执行的,而是并发的,哪一个最匹配就执行哪一个

finally会在执行完try/catch块之后再执行

标签:exception,健壮性,捕获,finally,课程,思考,catch,软件,异常
From: https://www.cnblogs.com/zzzzzzx/p/17419978.html

相关文章

  • 软件构造课程思考
    一、软件构造多维度试图1.BuildMoment(Code):SourceCode,Interface-class-Attribute-MethodMoment(Component):Package,File,Static-Linking,Library,TestCasePeriod(Code):CodeChurnPeriod(Component):Configuration-Item,Version2.RunMoment(Code):MemoryDump,CodeS......
  • 2023-Liunx命令 第17章 软件包管理
    17.1rpm指令RPM软件包管理器【语法】rpm[选项][参数]【功能介绍】rpm指令是RPM软件包的管理工具。RPM(全称为:RedHatPackageManager)最早由Redhat公司开发,作为RedhatLinux中软件包的管理工具。目前,有很多主流的发行版都是用RPM来管理Linux的软件包 【选项......
  • [图解] 完全自由软件[WinScp+Putty+Pageant]之Public Key Authentication方式登陆SSHD
    将几样自由软件结合到一起,完成强大的PublicKeyAuthentication方式登陆SSHD用到的软件为Putty:PuTTY:AFreeTelnet/SSHClientWinScp:FreewareSFTPandSCPclientforWindowPuttyGen:包含于WinScp的安装包里面Pageant:包含于WinScp的安装包里面安装之后,全程图解如下:1,看看我......
  • 完全自由软件[WinScp+Putty+Pageant]之Public Key Authentication方式登陆SSHD
    将几样自由软件结合到一起,完成强大的PublicKeyAuthentication方式登陆SSHD用到的软件为Putty:PuTTY:AFreeTelnet/SSHClientWinScp:FreewareSFTPandSCPclientforWindowPuttyGen:包含于WinScp的安装包里面Pageant:包含于WinScp的安装包里面安装之后,全程图解如下:1,看看......
  • 2023.5.21——软件工程日报
    所花时间(包括上课):6h代码量(行):0行博客量(篇):1篇今天,上午参观君乐宝企业,下午学习。我了解到的知识点:1.了解了一些数据库的知识;2.了解了一些python的知识;3.了解了一些英语知识;5.了解了一些Javaweb的知识;4.了解了一些数学建模的知识;6.了解了一些计算机网络的知识;......
  • 网站监测软件配置使用 - WGCLOUD
    WGCLOUD是一款优秀的开源运维监控工具,它可以监控网站、网页、服务接口的健康状态,并支持GET和POST接口,以及对返回的内容进行校验,支持告警通知,比如邮件、钉钉、微信等,这样可以有效防止我们的网站被篡改WGCLOUD很轻量,部署很方便,本文中我们不讲述如何部署安装了,可以去网站(www.wgstart.c......
  • 转载文章:linux安装软件包
    一、安装.deb软件包sudodpkg--installXXX.deb二、rpm软件管理工具rpm-ivh软件包名-evh 软件名卸载软件-q软件名查询已安装软件-qa查询已安装的所有软件-ql软件名软件程序列表-qf文件绝对路径查询某一个文件是由哪一个包提供-uv......
  • mac软件最佳资源下载站「macw」
    macw是一个专业的Mac苹果电脑软件下载网站。海量Mac软件,Mac教程技巧,壁纸,字体,模板,插件视频等资源集一身。有众多业界所推崇的主流软件,还有许多你不曾了解的小众精品软件。完美破解,人工测试,及时更新。更多详情:https://www.macw.com/?id=ODA2NCZfJjI3LjE4Ni4xMjUuMTE2......
  • 软件开发与创新——原型设计工具介绍
    这周软件开发与创新的实验课上老师向我们初步介绍了软件开发的原型设计工具,经过查询相关资料,我了解到软件开发原型设计工具在开发过程中起着重要的作用。以下是几个主要作用:界面设计和布局:原型设计工具允许开发人员创建应用程序的用户界面,包括页面布局、组件和元素的放置等。它......
  • 免费码流分析软件YUView(转)
    原文:https://zhuanlan.zhihu.com/p/558580168作者:codec2021大家周末好,如果你是做视频编解码的研究或者开发工作,大概率离不开码流分析软件/工具。vq-analyzer和Elecard虽说功能很强大,但都是商用收费的,且价格并不便宜,还有各种Licence限制。今天我给推荐一个Github上开源,且跨平台......