解决方案 »
- 在线等。方法的重载和重写的区别
- 运行selenium2出现NoClassDefFoundError
- 新手··考试跪求
- java .exe 文件运行时的警告 (警告: Duplicate name in Manifest: Sealed)
- 一个关于动态加载JAR包的问题。
- 长期困扰我的.class,渴望得到大家的帮助。
- 请各位JAVA高手前辈指点迷津
- 50分求助:哪儿能搞到SCJP的教程资料与试题资料!!!!!
- 請問哪里有"JBuilder 3.0/4.0 标准教程"的電子版
- 请高手说说JAVA BEAN!!谢谢(我初学,呵呵,领教了。)
- 求助Integer[] String[]
- java.lang.UnsupportedClassVersionError: org/apache/catalina/ant/ReloadTask (Unsu
http://docs.oracle.com/javase/8/
http://docs.oracle.com/javase/specs/jls/se8/html/jls-11.html#jls-11.2语言规范是英语的,本身也比较复杂,相对来讲比较难以记忆简单点儿说,可以这么理解:
调用方可以通过正确的调用来回避掉的异常,为未检查异常【一般可以视为是程序自身的问题】
无论调用方怎么努力,都无法回避掉的异常,为检查异常【一般可以视为是程序以外的问题】楼主问的是NumberFormatException,查一下API文档可以知道,是继承自RuntimeException的异常
而所有的RuntimeException异常都是未检查异常,所以代码当中即使不加上try和catch也能通过编译,甚至运行
当然如果你传递给Integer.parseInt的参数不是"10243",而是"这下我明白了什么是Exception"的话,就会发生运行时异常那,反过来,啥样的异常属于检查异常呢?
比如IOException
嗯,无论你的程序多么完美,你调用时事前检查了文件是否存在,你是否有权限读取那个文件
最终,你调用读取文件的方法时,都有可能发生IOException【比如硬盘坏了】Java为什么区分这两种异常呢?
因为Java语言本身可以在编译阶段提示你,务必给所有检查异常加上try/catch处理,否则会给出编译时error【Eclipse里的小红叉叉】。
甚至可以通过简单的鼠标点击,帮你把应该加上的检查异常处理自动的加上。【如果被调用的方法 声明里有抛出异常的,则调用者要么抓取这个异常,要么在调用方法里抛出同样的异常】指的是检查异常。