兰林汉的驴粉丝儿 2021-08-01 19:52 采纳率: 50%
浏览 24
已结题

Java为什么需要异常类,没有异常类之前怎么检查错误?

今天看到了异常处理,处理过程和语法看得懂,但不是很明白java为什么需要异常处理机制,受检异常编译不会通过,异常处理机制捕获或者抛出都是针对非受检异常,举的例子是1/0和一个索引越界,既然我们知道不能除以0,就不去除啊,知道索引不能越界,就不越界啊,为啥要产生异常再去处理异常呢?为什么不通过参数合法化判断,判空等操作写出更健壮的代码,从根本上杜绝异常的产生?
查阅很多资料和博客,关于异常都是介绍其机制,我想知道为啥必须要有这个机制,他的出现解决了什么问题,就像Math类,封装了许多数学的工具,异常类出现究竟优化了什么。
异常类既然是类,就说明他很有可能在java刚诞生时候,并没有这个类,哪个时候java是怎么处理出现的错误?

  • 写回答

1条回答 默认 最新

  • CSDN专家-微编程 2021-08-01 20:15
    关注

    但是有些是你不可避免的呀,比如
    1.用户输入了非法数据。
    2.要打开的文件不存在。
    3.网络通信时连接中断,或者JVM内存溢出。
    这些异常有的是因为用户错误引起,有的是程序错误引起的,还有其它一些是因为物理错误引起的。这些基本上都是不可避免的,就比如说1/0异常,你虽然知道,但是程序员做程序是给用户用的,那用户故意输入一个数除以0该怎么办,难不成一个输入异常就报错,直接让程序瘫痪,而不是解决一下异常或者抛出让其他调用的方法来执行吗?还有文件有的时候根据某些操作删除了,不去处理异常能行吗,虽然程序员明白不该犯这个低级错误,但是能保证所有的用户都一样吗?参数合法化判断,非空判断,都会影响代码执行的速度,不建议使用在后端,而是使用在前端,通过正则表达式来进行参数约束,这样直接在前端提醒用户,前端就不再给后端发送请求,所以不用再跑一遍后端,节约了不少时间

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 8月9日
  • 已采纳回答 8月1日
  • 创建了问题 8月1日

悬赏问题

  • ¥15 微信公众平台自制会员卡可以通过收款码收款码收款进行自动积分吗
  • ¥15 随身WiFi网络灯亮但是没有网络,如何解决?
  • ¥15 gdf格式的脑电数据如何处理matlab
  • ¥20 重新写的代码替换了之后运行hbuliderx就这样了
  • ¥100 监控抖音用户作品更新可以微信公众号提醒
  • ¥15 UE5 如何可以不渲染HDRIBackdrop背景
  • ¥70 2048小游戏毕设项目
  • ¥20 mysql架构,按照姓名分表
  • ¥15 MATLAB实现区间[a,b]上的Gauss-Legendre积分
  • ¥15 delphi webbrowser组件网页下拉菜单自动选择问题