java异常分为两类
异常处理机制
- 抛出异常
- 抛出异常后,代码终止执行
- 不处理这个异常,抛出去,让其他人去处理
- 在方法签名上生成 throws 语句
- 抛出的异常传递给上一级调用者
- 可以在方法中认为抛出异常,使用throw
- 捕获异常
package com.zhuchun.stu;
import java.io.*;
import java.util.Properties;
/**
* @Project:cicpx-autotest
* @Description:
* @Auther: zhuchun92@163.com
* @Date: 2020年03月25日 21:19
*/
public class TestTryCatch {
public static void main(String[] args) throws IOException, ClassNotFoundException {
String path = "src/main/resources/log4j.properties";
String path2 = "src/main/resources/log4j.propertie";
loadProperties(path);
loadProperties2(path2);
}
public static void loadProperties(String filepath) throws IOException, ClassNotFoundException {
File file = new File(filepath);
InputStream inStream = new FileInputStream(file);
Properties properties = new Properties();
properties.load(inStream);
System.out.println(properties.getProperty("log4j.appender.File"));
// throw new ClassNotFoundException();
}
public static void loadProperties2(String filepath) {
File file = new File(filepath);
InputStream inStream = null;
try { // try 代码块
inStream = new FileInputStream(file); // 可能会报异常的语句
} catch (FileNotFoundException e) { // 需要捕获的异常类型
// catch代码块,捕获异常后,需要做的后续操作
// e.printStackTrace();
System.out.println("文件没找到哦!");
}
Properties properties = new Properties();
// 多重捕获异常
try {
properties.load(inStream);
} catch (IOException e) {
e.printStackTrace();
} catch (NullPointerException e){
System.out.println("空指针咯!");
} finally {
// finally 代码块,可以做些资源回收等工作
// 无论是否发生异常,finally代码块都会被执行
try {
inStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
System.out.println(properties.getProperty("log4j.appender.File"));
// try {
// throw new ClassNotFoundException();
// } catch (ClassNotFoundException e) {
// e.printStackTrace();
// }
}
}