java 使用异常的好处总结
发布时间 - 2026-01-10 23:22:09 点击率:次java 使用异常的好处总结

一、分析
Java异常处理机制确实比较慢,这个“比较慢”是相对于诸如String、Integer等对象来说,单单从对象的创建上来说,new一个IOException会比String慢5倍,这从异常的处理机制上也可以解释:因为它执行fillStackTrace方法,要记录当前栈的快照,而String类则是直接申请创建一个内存创建对象,异常类慢一筹也在所难免。
二、场景
我们知道异常是主逻辑的例外逻辑,举个例子来说,比如我们能在马路上走(这时主逻辑),突然开过一辆车,我要避让(这是受检异常,必须处理),继续走着,不然一架飞机从我头顶飞过(非受检异常),我们可以选择继续行走(不捕捉),也可以选择指责噪音污染(捕捉,主逻辑的补充处理),在继续走着,突然一颗流星砸下来,这就没有选择,属于错误,不能做任何处理。
任何一个事物的处理都可能产生非预期的结果,问题是需要以何种手段来处理,如果不使用异常就需要依靠返回值的不同来进行处理了,这严重严重失去了面向对象的风格。
例如,用户登录的用例,就会在”例外事件“中说明”连续3次登陆失败即锁定用户账号“,这就是登陆事件的一个异常处理,具体到我们的程序中就是:
<span style="font-family:SimSun;font-size:14px;"> public voidlogin(){
try{
//正常登陆
}catch(InvalidLoginExceptionlie){
//用户名无效
}catch(InvalidPasswordExceptionpe){
//密码错误的异常
}catch(TooMouchLoginExceptiontmle){
//多次登陆失败的异常
}
}</span>
如此设计则可以让我们的login方法更符合实际的处理逻辑,同时使主逻辑(正常登陆,try代表块)更加清晰。使用异常有很多优点,比如可让正常代码和异常代码分离,能快速查找问题(栈信息快照)等,但是异常有一个缺点:性能比较慢。
但是我们不能因为性能问题而放弃使用异常,难道我们的系统连如此微小的性能消耗都不允许吗?
三、建议
性能问题不是拒绝异常的借口
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
# java
# 异常
# 异常详解
# 异常与性能
# Java中自定义异常详解及实例代码
# java基于spring注解AOP的异常处理的方法
# Java 异常详解
# JAVA中常见异常类
# java 异常详解及应用实例
# 深入理解java异常处理机制及应用
# java 解决异常 2 字节的 UTF-8 序列的字节2 无效的问题
# Java 常见异常(Runtime Exception )详细介绍并总
# 浅谈java中异常抛出后代码是否会继续执行
# java异常(Exception)处理机制详解
# 比较慢
# 可以选择
# 走着
# 这是
# 我要
# 都不
# 让我们
# 有很多
# 这就是
# 则是
# 会在
# 一颗
# 能在
# 这就
# 希望能
# 问题是
# 在所难免
# 因为它
# 任何一个
# 从我
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
javascript中闭包概念与用法深入理解
Laravel怎么写单元测试_PHPUnit在Laravel项目中的基础测试入门
如何在云虚拟主机上快速搭建个人网站?
深入理解Android中的xmlns:tools属性
Python文件流缓冲机制_IO性能解析【教程】
Laravel怎么生成二维码图片_Laravel集成Simple-QrCode扩展包与参数设置【实战】
Laravel如何使用Sanctum进行API认证?(SPA实战)
Mybatis 中的insertOrUpdate操作
PHP 实现电台节目表的智能时间匹配与今日/明日轮播逻辑
Laravel Fortify是什么,和Jetstream有什么关系
浅谈redis在项目中的应用
使用Dockerfile构建java web环境
如何批量查询域名的建站时间记录?
Laravel如何实现邮件验证激活账户_Laravel内置MustVerifyEmail接口配置【步骤】
Laravel如何创建自定义Facades?(详细步骤)
HTML5空格和margin有啥区别_空格与外边距的使用场景【说明】
如何用手机制作网站和网页,手机移动端的网站能制作成中英双语的吗?
HTML透明颜色代码怎么让下拉菜单透明_下拉菜单透明背景指南【技巧】
Laravel队列由Redis驱动怎么配置_Laravel Redis队列使用教程
夸克浏览器网页跳转延迟怎么办 夸克浏览器跳转优化
Laravel如何实现密码重置功能_Laravel密码找回与重置流程
怎么用AI帮你设计一套个性化的手机App图标?
如何在阿里云购买域名并搭建网站?
如何续费美橙建站之星域名及服务?
如何在阿里云虚拟机上搭建网站?步骤解析与避坑指南
企业网站制作这些问题要关注
中国移动官方网站首页入口 中国移动官网网页登录
bing浏览器学术搜索入口_bing学术文献检索地址
如何在IIS管理器中快速创建并配置网站?
Laravel Vite是做什么的_Laravel前端资源打包工具Vite配置与使用
如何使用 Go 正则表达式精准提取括号内首个纯字母标识符(忽略数字与嵌套)
阿里云高弹*务器配置方案|支持分布式架构与多节点部署
Laravel如何配置.env文件管理环境变量_Laravel环境变量使用与安全管理
瓜子二手车官方网站在线入口 瓜子二手车网页版官网通道入口
JavaScript中如何操作剪贴板_ClipboardAPI怎么用
开心动漫网站制作软件下载,十分开心动画为何停播?
javascript读取文本节点方法小结
JavaScript如何操作视频_媒体API怎么控制播放
Laravel怎么实现验证码功能_Laravel集成验证码库防止机器人注册
如何在香港免费服务器上快速搭建网站?
Android中Textview和图片同行显示(文字超出用省略号,图片自动靠右边)
如何在新浪SAE免费搭建个人博客?
猪八戒网站制作视频,开发一个猪八戒网站,大约需要多少?或者自己请程序员,需要什么程序员,多少程序员能完成?
Linux网络带宽限制_tc配置实践解析【教程】
zabbix利用python脚本发送报警邮件的方法
想要更高端的建设网站,这些原则一定要坚持!
Laravel如何创建自定义Artisan命令?(代码示例)
Laravel模型事件有哪些_Laravel Model Event生命周期详解
长沙企业网站制作哪家好,长沙水业集团官方网站?
微博html5版本怎么弄发语音微博_语音录制入口及时长限制操作【教程】

