编译异常和异常处理
【摘要】 编译异常介绍编译异常是指在编译期间,就必须处理的异常,否则代码不能通过编译常见的编译异常1)SQLException //操作数据库时,查询表可能发生异常2)IOException //操作文件时,发生的异常3)FileNotFoundException //当操作一个不存在的文件时,发生异常4)ClassNotFoundException //加载类,而该类不存在时,出现异常5)EOFEx...
编译异常
介绍
编译异常是指在编译期间,就必须处理的异常,否则代码不能通过编译
常见的编译异常
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("程序继续...");
}
}
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)