Java学习笔记————————异常
1)throws关键字
修饰符 返回值类型 方法名(参数列表) throws AAException,BBException…{
throw new AAException(“产生原因”);
throw new BBException(“产生原因”);
…
}
tips:
throws关键字必须写在方法声明处
throws关键字后边声明的异常必须是Exception或者Exception的子类
方法内部若给出了多个异常对象,则throws后边也必须声明相应的异常
若抛出多个异常对象有子父类关系,则直接声明父类异常即可
eg:
public class Demo5 {
public static void main(String[] args) throws IOException {
// TODO Auto-generated method stub
method1("c:\\a.txt");
}
/*
* 定义一个方法,对传递的文件路径进行合法性判断
* 注意:
* FileNotFoundException是编译异常,则必须处理这个异常
* 可使用throws继续声明抛出FileNotFoundException这个异常对象,让方法的使用者处理
* */
public static void method1(String filename) throws IOException {
if(!filename.equals("d:\\a.txt")) {
throw new FileNotFoundException("传递的文件路径不是d:\\a.txt");
}
/*
* 判断传递文件是否为".txt"结尾
* 若不是,则抛出IO异常对象,告知方法的使用者,文件的后缀名不对
*
*
* */
if(filename.endsWith(".txt")) {
throw new IOException("文件的后缀名错误。");
}
System.out.println("路径正确。");
}
}
2)try…catch
格式:
try{
可能产生异常的代码
}catch(定义一个异常的变量,用来接收try中抛出的异常对象){
异常的处理逻辑
}
…
catch(异常类名 变量名){
}
tips:
try中若出现多个异常对象,就用多个catch来处理这些异常对象
若try中产生了异常,则执行catch
若try中无异常,则不执行catch
eg:
public class Demo6 {
public static void main(String[] args) {
// TODO Auto-generated method stub
try {
method1("e:\\a.txt");
}catch(IOException e) {//try中抛出什么异常对象,catch就定义什么异常变量,用来接收这个异常对象
//异常对象处理逻辑
System.out.println("catch:文件的后缀名错误。");
}
System.out.println("程序继续执行2。");
}
/*
* 定义一个方法,对传递的文件路径进行合法性判断
* 注意:
* FileNotFoundException是编译异常,则必须处理这个异常
* 可使用throws继续声明抛出FileNotFoundException这个异常对象,让方法的使用者处理
* */
public static void method1(String filename) throws IOException {
/*
* 判断传递文件是否为".txt"结尾
* 若不是,则抛出IO异常对象,告知方法的使用者,文件的后缀名不对
*
*
* */
if(filename.endsWith(".txt")) {
throw new IOException("文件的后缀名错误。");
}
System.out.println("程序继续执行1。");
}
}