黑马程序员技术交流社区

标题: 关于try-catch的一些问题 [打印本页]

作者: 轻松过关    时间: 2012-12-2 16:40
标题: 关于try-catch的一些问题
1、try-catch会影响程序的性能吗?
2、在应用的时候try-catch只包含抛异常的语句吗?
3、同一函数内如果多个异常,是try-catch一起好,还是分开try-catch?
4、如果遇到循环我们是把try-catch放在循环外好?还是放在循环里面?
5、在run方法中,无法抛出异常,这事如果try-catch解决不了,只能让程序结束吗?应该怎么处理?

作者: 克零岚    时间: 2013-3-1 10:21
问题好多呀,呵呵
1.异常最大的开销是创建异常时需要回溯栈信息,如果没有异常的时候几乎不会影响性能
2.捕获异常
一个异常描述了程序在正常执行过程中发生的错误条件,当一个异常发生或抛出。那么正常的程序执行序列将被终止,程序将对异常进行处理,我们称之为抛出异常被捕获
如果在程序中捕获我们的错误,我们就能够增加程序的可靠性和健壮性,一种处理办法就是使用try-catch语句把可能抛出异常的语句包起来,在Java语言在中,异常Throwable 及其子类的实例对象,Throwable类有两个子类有两个子类
Error
Exception
Error类表示严重的错误,这个错误不应当由应用程序来捕获
Exception类表示了一个应当被捕获的错误条件
在Throwable类中有两个方法,可以用于获取抛出异常的信息
getMessage
printStackTrace
捕获异常
Try程序块里面的语句是按顺序执行的语句
当try程序块里面的语句抛出一个异常的时候,程序的控制转向了相匹配的catch程序块,catch程序块里面的语句被执行。
当异常发生后,程序执行将忽略try程序块中剩余的语句,继续执行程序块后面的语句。
如果在try程序块中没有抛出异常,那么catch块将被忽略。程序将继续执行try-catch下面的语句,抛出异常
3.
如果过多,是因为你的可能报错的地方比较多而是用try catch,这样当错误出现时,反而会比较方便的定位错误的位置。建议,将try catch 用的细致化,明确化。如果是滥用,这样只是会让程序的可读性变的很糟糕,当程序报错,也无法快速准确的定位。
4.
外面。如果遇到异常,循环停止。如果放在循环里面,就会一直抛出异常信息,最后内存溢出。我很少看到用在里面的。呵呵







欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2