0x40000015装系统出现c报错 程序异常退出是什么原因( 五 )


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子句声明将它抛出,否则会导致编译错误 。只有当抛出了异常时,该方法的调用者才必须处理或者重新抛出该异常 。若当方法的调用者无力处理该异常的时候,应该继续抛出 。调用方法必须遵循任何可查异常的处理和声明规则 。若覆盖一个方法,则不声明与覆盖方法不同的异常 。声明的任何异常必须是被覆盖方法所声明异常的同类或子类 。
3.5 捕获异常try 、finally 、catch 这三个关键字主要有下面几种组合方式try-catch 、try-finally、try-catch-finally 。
注意:catch语句可以有一个或者多个或者没有,finally至多有一个,try必要有 。
那这里你会问有没有单独try模块出现,那我想问下你,try是用来监听是否有异常,那如果发生了异常,谁来捕获呢?所以没有try单独出现 。而且编译不能通过 。
所以跟try模块一样,例如catch,finally也不能单独使用出现
程序通常在运行之前不报错,但是运行后可能会出现某些未知的错误,不想异常出现导致程序终止,或者不想直接抛出到上一级,那么就需要通过try-catch等形式进行异常捕获,之后根据不同的异常情况来进行相应的处理 。捕获异常:Java中对异常有针对性的语句进行捕获,可以对出现的异常进行指定方式的处理 。捕获异常语法如下:

推荐阅读