论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
朋友圈
看朋友圈动态,了解ToB世界。
ToB门户
了解全球最新的ToB事件
博客
Blog
排行榜
Ranklist
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
导读
Guide
相册
Album
记录
Doing
搜索
本版
文章
帖子
ToB圈子
用户
免费入驻
产品入驻
解决方案入驻
公司入驻
案例入驻
登录
·
注册
只需一步,快速开始
账号登录
立即注册
找回密码
用户名
Email
自动登录
找回密码
密码
登录
立即注册
首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
圈子
SAAS
IT评测·应用市场-qidao123.com
»
论坛
›
企业信息化/数字化
›
MES
›
软件构造-异常的使用技巧
软件构造-异常的使用技巧
八卦阵
金牌会员
|
2022-8-9 14:45:24
|
显示全部楼层
|
阅读模式
楼主
主题
971
|
帖子
971
|
积分
2913
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要
登录
才可以下载或查看,没有账号?
立即注册
x
在实际中,用户输入的数据格式未必是永远正确的,尝试打开文件的操作也不一定每次都成功,异常的出现是不可忽视的,Java为程序员提供了明确而优雅的解决方案,也就是异常的捕获与抛出。课程中我们主要介绍了如何通过throws和try catch语句来应对异常;除了默认的异常类,程序员还可以定义自己的异常对象等;异常有不同的分类,有Error、Exception之分,也有checked和unchecked异常。
有人认为事无巨细的异常是一种累赘,也有人认为抛出的异常还不够多,无论如何为了避免我们的程序出现莫名其妙的问题,异常总是有它的意义所在。在《Java核心技术》一书中,介绍了一些异常的使用技巧,下面进行简单的总结和说明:
1.异常不能代替简单的测试
编写异常抛出的策略并不是一件难事,但是用抛出异常来代替一些测试用例是得不偿失的,异常涉及了大量系统层面的调用,例如当我们强制无论栈空与否都进行弹出操作时,抛出一个EmptyStackException异常所消耗的时间就会远远超出调用isEmpty方法来得到结果。
2.不要过分的细化异常
异常处理一般有这样的要求:应该将正确处理与错误处理分开,假如我们的语句块中可能有多个异常的出现,那么我们应当在catch部分进行分类的处理,而不是在每句可能出现异常的语句处写一个try...catch...结构
3.充分利用异常的层次结构
这一部分可以参考异常树的结构,如果简简单单地抛出RuntimeException异常,可能会令人费解,最好某个合适的子类或者编写一个自定义的异常类来最快找到异常的位置。
4.不要压制异常
我们当然可以利用try...catch...语句来避免程序抛出异常,然而很多异常都会预示着程序出现了一些逻辑上的错误,或者某种用户可能的输入情况未被妥善处理,除了安静地通过编译阶段,处理异常本身并没有意义。
5.在检测错误时,“苛责”比放任更好
例如在栈为空时,是返回一个空指针好,还是抛出一个EmptyStackException更好?实际上,返回一个null很有可能在以后造成了空指针NullPointerException异常,这时再检查程序中哪里出现了错误时可能就会非常困难。及时抛出异常,也是一个非常重要的策略。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
回复
使用道具
举报
0 个回复
倒序浏览
返回列表
快速回复
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
or
立即注册
本版积分规则
发表回复
回帖并转播
回帖后跳转到最后一页
发新帖
回复
八卦阵
金牌会员
这个人很懒什么都没写!
楼主热帖
不可思议但又无处不在的漏洞,WEB安全 ...
【历史上的今天】6 月 2 日:苹果推出 ...
C#实现HTTP访问类HttpHelper
开源共建 | Dinky 扩展批流统一数据集 ...
企业应用超融合架构的设计实例及超融合 ...
袋鼠云春季生长大会圆满落幕,带来数实 ...
大规模 IoT 边缘容器集群管理的几种架 ...
重磅硬核 | 一文聊透对象在 JVM 中的内 ...
【软考】系统集成项目管理工程师(二) ...
ClickHouse 查询优化详细介绍
标签云
AI
运维
CIO
存储
服务器
浏览过的版块
虚拟化与私有云
分布式数据库
.Net
BPM
云原生
物联网
DevOps与敏捷开发
网络安全
快速回复
返回顶部
返回列表