怎么调用的?

怎么调用的?

一开始调用Testthree(),之后就跳到Testtwo(),再跳Testone(),运行,Testone抛出异常,Testtwo捕捉异常,然后再抛出一个新异常,新异常还带对象名e(应该是Testone抛出异常的对象名)和信息,Testthree捕捉Testtwo抛出异常:方法一:直接抛出新异常,异常带对象名e(Testtwo对象名)和信息,main方法里面再捕捉,打印输出。(可为什么会输出构造方法里面的信息?)

方法二:前面的一样,到Testthree()时,创建一个新对象e1,再往throwable构造方法里面传信息,再调用initcase(e//Testtwo的对象名),然后抛出自己的对象名,被main捕捉,打印输出(可为什么会打印构造方法里面的信息和调用initcase的信息)


我理解就是这样。难道就是那个打印语句吗?不应该就是打印错误信息在几行吗?

还有API的问题,到达怎么使用,什么时候就要用到,你无缘无故的说一句API里面为我们提供什么方法,我怎么知道会不会提供啊,又没看过,看过也不一定能懂,读懂字面意思也不知道真正写代码怎么写?

求解,在线等急


正在回答

登陆购买课程后可参与讨论,去登陆

1回答

        同学你好,1、第一个问题中,直接输出异常信息是因为在主方法中调用了e.printStackTrace();来输出异常信息!

http://img1.sycdn.imooc.com//climg/5d1ae33b0001f62706780271.jpg

2、第二个问题中,在异常链的异常中,抛出新的异常,并将原来的异常信息传入,在主方法中调用时,同样使用e.printStackTrace();来输出异常的具体信息哦!

3、API一般不是拿来看的,是拿来查阅的,像字典一样。比如异常类中的那么多方法,我们不可能全部都记住,只有在需要用到时,才去查阅一下用法。

 java API 要结合实际学习用的,整个API不可能完全学会的。

当遇到不会的,先猜测用法,然后查阅API。

查阅后最好是手动敲一遍,一般可以得到一个正常的结果和反馈,那么这时候再去翻一翻API,看看API里的描述和你得到的结果是不是一致的。

多次练习后,等到习惯使用API后,理解起来就容易多了。如果看不懂英文的,可以再往网上找到中文版本的API来查阅哦!

          如果我的回答解决了你的疑惑,请采纳。祝:学习愉快~


  • cccca 提问者 #1
    也就是说e.printStackTrace();是用来输出异常的具体信息,包括Exception里面构造方法的信息?那么Exception的构造方法也没有返回信息给e.printStackTrace(),他怎么输出啊?还是printStackTrace();方法里面的方法体是自动去获取构造方法和普通方法里面的信息,然后再输出?
    2019-07-02 13:22:22
  • 好帮手慕小班 回复 提问者 cccca #2
    同学你好,printStackTrace()方法是异常类里的一个方法,这个方法的作用是输出这个异常在创建时,传入的异常信息和一个堆栈跟踪(就是我们的程序方法调用时抛出异常时的具体的信息的位置),这个方法在底层是封装好的,如果同学感兴趣,可以去研究一下源码哦! 如果我的回答解决了你的疑惑,请采纳。祝:学习愉快~
    2019-07-02 17:13:53
  • cccca 提问者 回复 好帮手慕小班 #3
    哦,那API是不是都是这种类型,调用里面的方法,都会自动输出传进去的信息,还是在某个不同的的方法里面会有具体的方法体表示
    2019-07-02 18:11:31
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师