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
{方法体}
异常的声明其实就是声明一个异常类,在声明之后将其抛出。
【运行效果】
现在要添加数据了!
刚刚加到后面的字符串是:
这个就是这所学校最好的学生
这个就是这所学校最好的学生