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

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

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

  • 好问题 提建议
  • 收藏

1条回答 默认 最新

  • CSDN专家-微编程 2021-08-01 20:15
    已采纳

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

    已采纳该答案
    评论
    解决 无用
    打赏 举报

相关推荐 更多相似问题