public static void main(String[] args) throws FileNotFoundException { readFile(“a.txt”); } // 如果定义功能时有问题发生需要报告给调用者 。可以通过在方法上使用throws关键字进行声明 public static void readFile(String path) throws FileNotFoundException { if(!path.equals(“a.txt”)) {//如果不是 a.txt这个文件 // 我假设 如果不是 a.txt 认为 该文件不存在 是一个错误 也就是异常 throw throw new FileNotFoundException(“文件不存在”); } }}而throws用于进行异常类的声明,若该方法可能有多种异常情况产生,那么在throws后面可以写多个异常类,用逗号隔开 。
public class ThrowsDemo2 {public static void main(String[] args) throws IOException {readFile("a.txt");}//若该方法可能有多种异常情况产生,那么在throws后面可以写多个异常类,用逗号隔开//若有异常a是异常b的子类,也可以直接省略,写b异常private static void readFile(String path) throws FileNotFoundException, IOException {if (!path.equals("a.txt")) {//如果不是 a.txt这个文件// 我假设如果不是 a.txt 认为 该文件不存在 是一个错误 也就是异常throwthrow new FileNotFoundException("文件不存在");}if (!path.equals("b.txt")) {throw new IOException();}}}
throws抛出异常的规则:
- 如果是非受检异常(unchecked exception),即Error、RuntimeException或它们的子类,那么可以不使用throws关键字来声明要抛出的异常,编译仍能顺利通过,但在运行时会被系统抛出 。如果一个方法可能出现受检异常(checked exception),要么用try-catch语句捕获,要么用throws子句声明将它抛出,否则会导致编译错误 。只有当抛出了异常时,该方法的调用者才必须处理或者重新抛出该异常 。若当方法的调用者无力处理该异常的时候,应该继续抛出 。调用方法必须遵循任何可查异常的处理和声明规则 。若覆盖一个方法,则不声明与覆盖方法不同的异常 。声明的任何异常必须是被覆盖方法所声明异常的同类或子类 。
注意:catch语句可以有一个或者多个或者没有,finally至多有一个,try必要有 。
那这里你会问有没有单独try模块出现,那我想问下你,try是用来监听是否有异常,那如果发生了异常,谁来捕获呢?所以没有try单独出现 。而且编译不能通过 。
所以跟try模块一样,例如catch,finally也不能单独使用出现
程序通常在运行之前不报错,但是运行后可能会出现某些未知的错误,不想异常出现导致程序终止,或者不想直接抛出到上一级,那么就需要通过try-catch等形式进行异常捕获,之后根据不同的异常情况来进行相应的处理 。捕获异常:Java中对异常有针对性的语句进行捕获,可以对出现的异常进行指定方式的处理 。捕获异常语法如下:
推荐阅读
- 提莫西查拉梅为什么叫“甜茶”?
- “操”什么意思
- champion袖标有几种
- 清代小说<再生缘>陈端生原著 !谁能帮帮我,十分感谢
- 建国西路154号 问路,梅陇新村—>卢湾区业余大学
- “营改增”文化创意服务包括哪些?
- “ip电影”什么意思
- 黄渤将“佟丽娅”说成“佟娅丽”,是口误还是玩笑?
- “伯牙谓世再无知音,乃破琴绝弦,终身不复鼓。”的意思是什么
- “执念有尽,深爱无终。”这句话什么意思?