开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第12天,点击查看活动详情
编译异常
介绍
编译异常是指在编译期间,就必须处理的异常,否则代码不能通过编译
常见的编译异常
1)SQLException //操作数据库时,查询表可能发生异常
2)IOException //操作文件时,发生的异常
3)FileNotFoundException //当操作一个不存在的文件时,发生异常
4)ClassNotFoundException //加载类,而该类不存在时,出现异常
5)EOFException //操作文件,到文件末尾,发生异常
6)IllegalmentException //参数异常
import java.io.FileInputStream;
import java.io.IOException;
public class Exception02 {
public static void main(String[] args) {
try {
FileInputStream fis;
fis = new FileInputStream("d:\\aa.jpg");
int len; while ((len = fis.read()) != -1) {
System.out.println(len);
} fis.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
异常处理
介绍
异常处理就是当异常发生时,对异常处理的方式。
异常处理的方式
(1)try-catch-finally
在代码中捕获发生的异常,自行处理。
(2)throws
将发生的异常抛出,交给调用者(方法)来处理,最顶级的处理者就是JVM。
try-catch 异常处理
说明
(1)Java提供try和catch块来处理异常,try块用于包含可能出错的代码,catch块用于处理try块中发生
的异常。可以根据需求在程序中创建多个try-catch块。
(2)基本语法
try{
//可疑代码
//将异常发生成对应的异常对象,传递给catch块
}catch(异常){
//对异常的处理
}
//如果没有finally,语法是可以通过的
try-catch 方式处理异常-快速入门
代码:
public static void main(String[] args) {
int num1 = 10;
int num2 = 0;
try {
int res = num1 / num2;
} catch (Exception e) {
System.out.println(e.getMessage());
}
}
try-catch 方式处理异常-注意事项
(1)如果异常发生了,则异常发生后面的代码不会执行,直接进入到catch块
(2)如果异常没有发生,则顺序执行try的代码块,不会进入到catch
(3)如果希望不管是否发生异常,都执行某段代码(比如关闭连接,释放资源等)则使用如下代码
try {
int a = Integer.parselnt(str);
System.out.println("数字" + a);
} catch (Exception e) {
e.printStackTrace();
} finally {
System.out.println("不管是否发生异常,都始终执行代码");
}
}
代码:
public class TryCatchDetail {
public static void main(String[] args) {
//ctrl + atl + t
//1. 如果异常发生了,则异常发生后面的代码不会执行,直接进入到 catch 块
//2. 如果异常没有发生,则顺序执行 try 的代码块,不会进入到 catch
//3. 如果希望不管是否发生异常,都执行某段代码(比如关闭连接,释放资源等)则使用如下代码- finally try {
String str = "周小末";
int a = Integer.parseInt(str);
System.out.println("数字:" + a);
} catch (NumberFormatException e) {
System.out.println("异常信息=" + e.getMessage());
} finally {
System.out.println("finally 代码块被执行...");
}
System.out.println("程序继续...");
}
}