其他分享
首页 > 其他分享> > 浅谈try-catch——为什么要用try-catch&什么时候用try-catch?

浅谈try-catch——为什么要用try-catch&什么时候用try-catch?

作者:互联网

本文主要内容如题所述,下面给出解答:
首先第一个问题,我们为什么要使用try-catch捕获异常?
我们都知道当程序中出现诸如数值越界之类的异常是,系统会自动抛出特定异常,不加处理的话此时的异常是一堆程序员看着都头疼的错误日志,而如果说前端直接将异常信息打印给客户端,用户看到后必然更加头疼。这时就需要我们后端对这些容易出现的异常进行补货并处理,另其返回到终端的数据能狗尽可能直观一目了然。这样一来,如果是用户输入或操作的问题,也能及时察觉并进行修正。另外在日常调试中,使用trycatch也能帮助我们快速定位bug。主要就是这两方面的优势,如果小伙伴们还有其他观点可以在下面留言赐教。
关于第二个问题,什么时候要用到trycatch进行捕获异常?

在这里插入图片描述
如上图所示,我们常见的编译错误和异常主要分成这样几类,而trycatch中我们所讨论的异常都是RuntimeException(运行时异常),但是不要被名字所混淆,因为实际上我们所讨论的所有错误也好异常也好都是发生在Runtime中的,因此这里我更倾向于理解成主观原因异常,比如错误的类型转换,数组访问越界,空指针异常等,与之对应的是客观原因异常,顾名思义就是由于某些外部因素导致的异常,比如试图在文件尾部后面读取数据;试图打开一个不存在的文件;试图根据给定的字符串查找Class对象,而这个字符串所表示的类根本不存在,以上这些官方统称为IOException,也就是我所谓的客观原因异常。
对于trycatch而言,我们通常用它来捕获和处理的都是RuntimeException(在你没有对异常类进行自定义的情况下),具体包括:
1.EvalError: eval()的使用与定义不一致
2.RangeError: 数值越界
3.ReferenceError:非法或者不能识别的引用数值
4.SyntaxError: 发生语法解析错误
5.TypeError: 操作数类型错误
6.URIError: URL处理函数使用不当
7.NullPointerException空指针异常
8.ArraylndexOutOfBoundsException数组下标越界异常

其中最后两种可能是比较常见的。而前几种都是从其他前辈处看到的,不确定是否真的存在,暂时还没遇到过。

另外,trycatch的作用是捕获异常,因此在调试过程中可以使用它进行bug定位。
以上。

标签:越界,浅谈,错误,try,trycatch,catch,异常
来源: https://blog.csdn.net/MichaelSuns/article/details/111172331