16.1.2 异常的声明

如何进行异常处理呢?首先要了解异常是如何声明的。异常的声明是告诉Java编译器有一个异常出现了。

【实例16.1】在方法中,异常声明在方法的头部,利用关键字“throws”来表示此方法在运行的时候,很可能会出现异常现象。下面先看一个例子。


01 import java.io.*;

02 public class file1

03 {

04 public static void main(String[]args)

05 {

06 File f=new File("d://raf.txt");

07 RandomAccessFile raf=new RandomAccessFile(f,"rw");

08 String s="这个就是我们学校最好的学生";

09 System.out.println("现在要添加数据了!");

10 long l=raf.length();

11 raf.seek(l);

12 raf.writeUTF(s);

13 System.out.println("刚刚加到后面的字符串是:");

14 raf.seek(l);

15 System.out.println(raf.readUTF());

16 raf.seek(0);

17 System.out.println(raf.readUTF());

18 raf.close();

19 }

20 }


【代码说明】这个程序在编译的时候,会出现以下的编译错误。但如果在方法的头部声明异常,那编译时就不会再出现错误。

【运行效果】


file2.java:7:未报告的异常java.io.FileNotFoundException;必须对其进行捕捉或声明

以便抛出

RandomAccessFile raf=new RandomAccessFile(f,"rw");

^

file2.java:11:未报告的异常java.io.IOException;必须对其进行捕捉或声明以便抛出

long l=raf.length();

file2.java:12:未报告的异常java.io.IOException;必须对其进行捕捉或声明以便抛出

raf.seek(l);

file2.java:13:未报告的异常java.io.IOException;必须对其进行捕捉或声明以便抛出

raf.writeUTF(s);

file2.java:15:未报告的异常java.io.IOException;必须对其进行捕捉或声明以便抛出

raf.seek(l);

^

file2.java:16:未报告的异常java.io.IOException;必须对其进行捕捉或声明以便抛出

System.out.println(raf.readUTF());

file2.java:17:未报告的异常java.io.IOException;必须对其进行捕捉或声明以便抛出

raf.seek(0);

file2.java:18:未报告的异常java.io.IOException;必须对其进行捕捉或声明以便抛出

System.out.println(raf.readUTF());

file2.java:19:未报告的异常java.io.IOException;必须对其进行捕捉或声明以便抛出

raf.close();

9错误


【实例16.2】看下面的代码。


01 import java.io.*;

02 public class file2

03 {

04 public static void main(String[]args)throws Exception

05 {

06 File f=new File("d://raf.txt");

07 RandomAccessFile raf=new RandomAccessFile(f,"rw");

08 String s="这个就是这所学校最好的学生";

09 System.out.println("现在要添加数据了!");

10 long l=raf.length();

11 raf.seek(l);

12 raf.writeUTF(s);

13 System.out.println("刚刚加到后面的字符串是:");

14 raf.seek(l);

15 System.out.println(raf.readUTF());

16 raf.seek(0);

17 System.out.println(raf.readUTF());

18 raf.close();

19 }

20 }


【代码说明】第4行由于声明了异常,所以在编译时,就不会报错。但是当运行时,又可能会出现运行时的异常报错,如何去处理呢?这就需要抛出异常。关于抛出异常后面会详细讲述,下面总结如何进行异常声明。

方法名throws Exception

{方法体}


异常的声明其实就是声明一个异常类,在声明之后将其抛出。

【运行效果】


现在要添加数据了!

刚刚加到后面的字符串是:

这个就是这所学校最好的学生

这个就是这所学校最好的学生