java的Exception类是所有类的基类,基类不如它的子类具体,父类有的东西子类都有(构造方法除外),可是子类有的东西父类不一定有,可是为什么Exception类几乎能捕捉到所有异常呢,不明白。
解决方案 »
- java放射问题
- java读取txt文件,如何过滤掉注释以及空格
- file类菜鸟问题,困扰了我好久
- 棘手问题:byte[]和String转换非文本问题,低手莫进
- 请问不在windows里设ODBC数据源怎样连接数据库?
- 急救:applet如何能与别的ip地址进行socket连接(不解决我就死定了)
- 需要用JBuilder制作软件,目前对JBuilder还未使用,对Java语言也未看,应如何入手?请具体一些,或者推荐两本书
- 新年到了,大家把该揭的帖都揭了吧!
- 北落师门)你进来一下
- 那里可以下载此书所配光盘上的源代码:《Java2编程详解》(Speical Edition Using Java2), 美 Joseph L. Weber 著, 1234 页
- 大家实际做项目时,用得最多的是什么布局?
- Properties类中的put方法改掉默认GBK编码方式引发的小问题!
要是多态的话得有所体现呀,可是通常都是这样的形式,比方说: .......
}catch(Excetpion e){
System.out.println(e.message);
}.......
多态一般通过构造函数体现,可是这里什么也没有,在这里,你能看得出它是一个类的父类么?
父类的范围大?父类的东西子类都有,只有构造函数除外,,我的认为是:既然出了一个子类,那么子类一般是添加新的方法的,父类没有这个方法,依着这个思维下去,很不幸地发现,在Exception遭遇重大挫折,课本说Exception能捕捉到所有的异常,那么诸如ArrayIndexOutOfBoundsException类的特点父类都有喽?可是ArrayIndexOutOfBoundsException不是它的子类么。
现在发现就是用多态的观点解释才可能行得通,但是就像前面我写得代码,它没有多态的影子,高手帮下.
try{
...抛出异常exception
}catch(按钮无法按下 e1){
1...
}catch(开关损坏 e2){
2...
}catch(电灯无法打开 e3){
3...
}
多态体现在处理的部分,如果跑出来的异常是开关损坏异常,那么e1就无法捕捉到,e2和e3可以捕捉到,因为他们都是电灯无法打开异常。如果没写e2,那么e3可以捕捉到异常,并且如果在e3内调用e3.printStrack();就相当于调用开关损坏的pringStrack()方法。这个是多态。
异常捕捉不是用多态来进行判断的,是用exception instanceof 按钮无法按下,exception instanceof 开关损坏,exception instanceof 电灯无法打开,这种类型判断来捕捉的。
因为所有的异常都是Exception的子类,所以所有的异常 instanceof Exception都是true,所以可以捕捉所有的异常。
另外建议如果一定要这样捕捉,还是捕捉Throwable比较好。