想不明白的抛出异常,请指教!

macrotea-cn 2010-03-10 03:00:12
源码:


public class Mytest {
public void show1(){
throw new Exception();
}
public void show2(){
throw new NumberFormatException();
}
}


问题:

请问为什么在eclipse中,在show1方法中的“throw new Exception();”会提示“添加抛出异常或者用try..catch捕获”?
show2()方法并没有提示!

求助:
NumberFormatException是Exception的子类,为什么父类实例会提示出错,而子类实例不提示出错?
请各路高手给小弟一个专业的回复!谢谢!

...全文
102 10 打赏 收藏 转发到动态 举报
写回复
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
huajia136651 2010-03-10
  • 打赏
  • 举报
回复
7楼我崇拜你,我也要好好学习
macrotea-cn 2010-03-10
  • 打赏
  • 举报
回复
原来如此 我都忘记运行时异常了!
soulx 2010-03-10
  • 打赏
  • 举报
回复
NumberFormatException()
RuntimeException 是那些可能在 Java 虚拟机正常运行期间抛出的异常的超类。
可能在执行方法期间抛出但未被捕获的 RuntimeException 的任何子类都无需在 throws 子句中进行声明。

Exception
Exception 类及其子类是 Throwable 的一种形式,它指出了合理的应用程序想要捕获的条件。
梦_枫 2010-03-10
  • 打赏
  • 举报
回复
常见JAVA运行时异常有哪些?

ArithmeticException - 算术运算中,被0除或模除

ArrayIndexOutOfBoundsException - 数组越界访问

ArrayStoreException - 数据存储异常,写数组操作时,对象或数据类型不兼容

ClassCastException - 类型转换异常

IllegalArgumentException - 方法的参数无效

IllegalThreadStateException - 试图非法改变线程状态,比方说试图启动一已经运行的线程

NullPointerException - 试图访问一空对象的变量、方法或空数组的元素

NumberFormatException - 数据格式异常,试图把一字符串非法转换成数值(或相反)

SecurityException - 如果Applet试图执行一被WWW浏览器安全设置所禁止的操作

IncompatibleClassChangeException - 如改变了某一类定义,却没有重新编译其他引用了这个类的对象。如某一成员变量的声明被从静态改变为非静态,但其他引用了这个变量的类却没有重新编译,或者相反。如删除了类声明中的某一域或方法,但没有重新编译那些引用了这个域或方法的类

OutOfMemoryException - 内存不足,通常发生于创建对象之时

NoClassDefFoundException - JAVA运行时系统找不到所引用的类

IncompatibleTypeException - 试图实例化一个接口,Java运行时系统将抛出这个异常

UnsatisfiedLinkException - 如果所需调用的方法是C函数,但Java运行时系统却无法连接这个函数

InternalException - 系统内部故障所导致的异常情况,可能是因为Java运行时系统本身的原因
梦_枫 2010-03-10
  • 打赏
  • 举报
回复
Java提供了两类主要的异常:runtime exception和checked exception。checked 异常也就是我们经常遇到的IO异常,以及SQL异常都是这种异常。对于这种异常,JAVA编译器强制要求我们必需对出现的这些异常进行catch。所以,面对这种异常不管我们是否愿意,只能自己去写一大堆catch块去处理可能的异常。

但是另外一种异常:runtime exception,也称运行时异常,我们可以不处理。当出现这样的异常时,总是由虚拟机接管。比如:我们从来没有人去处理过NullPointerException异常,它就是运行时异常,并且这种异常还是最常见的异常之一。
老紫竹 2010-03-10
  • 打赏
  • 举报
回复
NumberFormatException()
属于运行时的异常,在程序运行时,才可能

而Exception 在编译的时候就会检查。
老紫竹 2010-03-10
  • 打赏
  • 举报
回复
public void show1(){
throw new Exception();
}

你的方法里有异常,那么怎么办呢?
1 自己处理,那就try catch掉
2 抛给调用者,那么方法应该写成
 public void show1 throws Exception(){
throw new Exception();
}
梦_枫 2010-03-10
  • 打赏
  • 举报
回复
NumberFormatException()是运行时异常,只在运行后才有用。。。
soli11722984 2010-03-10
  • 打赏
  • 举报
回复
下面是运行时异常,所有运行时异常默认可以不用捕获
zliuzz 2010-03-10
  • 打赏
  • 举报
回复
酱油路过。。。。。回复内容太短了

62,567

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告