语法格式:
throw Throwable 或子类的实例
我们遇到的异常基本都是系统产生的,如果需要人为产生异常需要使用throw关键字。
代码示例
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStreamReader;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class MyThrow {
public static void main(String[] args) {
try {
Date date = readDate();
System.out.println("读取的日期 = " + date);
} catch (Mymessage e) {
System.out.println("处理Mymessage...");
e.printStackTrace();
}
}
// 将Mymessage异常抛出,交给上一级调用解决
private static Date readDate() throws Mymessage {
// 自动资源管理
try (FileInputStream readfile = new FileInputStream("readme.txt");
InputStreamReader ir = new InputStreamReader(readfile);
BufferedReader in = new BufferedReader(ir)) {
// 读取文件中的一行数据
String str = in.readLine();
if (str == null) {
return null;
}
// 初始化时间格式
DateFormat df = new SimpleDateFormat("yyyy-MM-dd");
// 格式化时间格式
Date date = df.parse(str);
return date;
} catch (FileNotFoundException e) {
//调用我们自定义异常
throw new Mymessage(e.getMessage());
} catch (IOException e) {
//调用我们自定义异常
throw new Mymessage(e.getMessage());
} catch (ParseException e) {
System.out.println("处理ParseException...");
}
return null;
}
}