try-catch
学了这段时间,对catch块的理解不清。
课程里说,try块里有异常时,try抛出此异常,catch块后面括号里的Exception对象的引用e捕获该异常,这怎么理解啊。
为什么在catch块后面写Exception e?
Exception e怎么捕获异常,用抓蝴蝶的网子套吗?用钳子夹吗?
正在回答 回答被采纳积分+1
这里并不像new了一个异常对象哦。
try 里,小明拉肚子了,就把这个异常抛出来了,catch 就相当于医生。假如这个(全科医生 e )中写的是,则这个意思啥病都能处理(也就是说,啥病都会先过这个医生的手)
try{ 小明拉肚子了,抛出这个问题了 }catch(全科医生 病){ 病.详细信息。(e.getMassage()) 执行这里的方案 }
try{ 小明拉肚子了,抛出这个问题了 }catch(咽喉科大夫 病){ 根本不会执行到这里,因为拉肚子不会进入咽喉科 }
try{ 小明拉肚子了,抛出这个问题了 }catch(肠胃科大夫 病){ 病.详细信息。(e.getMassage()) 会进入这里,并执行这里边的方案(代码) }
这里没有办法完全的进行类比,比喻不一定非常正确,但意思类似。如果同学还是理解不了,这里请同学先记住哦。
如果我的回答解决了你的疑惑,请采纳!祝学习愉快!
1、同学可以这样理解。
try{
假如try中的代码抛出了异常,则会找catch
}catch(){
}
至于是否在catch中处理,要看catch后边的括号写的什么了。
比如,catch后边的括号中写的Exception e ,则它就可以捕获到所有的异常。也就是说,假如try中出现了异常,catch就可以捕获到。
如果写的ArithmeticException e ,则如果try中的代码抛出了算数异常,则catch就会捕获到。其他的异常catch就捕获不到。
至于它是如何捕捉到的,这个就是底层代码实现的咯,这个以目前的阶段还是无法给同学解释的。这里同学要学习的是如何使用它就可以了呦。
同学你可以暂时理解为,catch就像一个处理try发生的问题的人员,他有它指定的任务,括号里Exception 或者ArithmeticException 等就是他要处理的异常的类型。一旦try抛出了对应的异常,这个括号中的 e 就是抛出了的异常对象。
如果我的回答解决了你的疑惑,请采纳!祝学习愉快!
- 参与学习 人
- 提交作业 3802 份
- 解答问题 11489 个
本阶段带你迈入Java世界,学习Java必备基础知识,基础语法、面向对象思想以及常用工具类的使用。
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星