try-catch 语法
-
try{
-
放入可能发生异常的语句
-
}catch(ExceptionSubClass1 e){
-
处理异常的语句 1
-
}catch(ExceptionSubClass2 e){
-
处理异常的语句 2
-
}
try-catch 语句可以由几个 catch 组成,分别处理发生相应异常。
Java 里的 try-catch 语句一般用来处理异常,将可能出现的异常的语句操作放在 try 里,一旦 try 里语句出现异常,就立即结束 try 部分。处理异常的语句放在catch 里。
例子加解析
package test;
public class Test {
public static void main(String[] args) {
int n = 0, m = 0, t = 1000;
try {
// integer 整数,整型,parseInt 将字符串转换成整数
// Integer.parseInt(String)就是将String字符类型数据转换为Integer整型数据。
// Integer.parseInt(String)遇到一些不能被转换为整型的字符时,会抛出异常。
m = Integer.parseInt("8888");
n = Integer.parseInt("ab89"); // 发生异常,转向catch
t = 7777; // t没有机会被執行
// java中针对整数常量提供了四种表现形式:A.二进制B.八进制C.十进制D.十六进制
// 数位运算是逢X进一位,二进制是逢二进一、八进制是逢八进一、十进制是逢十进一、十六进制是逢十六进一。
// 二进制(由0,1组成。以0b开头)
// 八进制(由0,1,...7组成。以0开头。)
// 十进制(由0,1,...9组成。整数默认是十进制。)
// 十六进制(由0,1,...9,a,b,c,d,e,f(大小写均可)组成。以0x开头。)
} catch (Exception e) { // Exception e 獲取 try 里的異常
System.out.println("用e.getMessage() 獲取出錯點信息=》发生异常:" + e.getMessage()); // e.getMessage() 獲取出錯點信息
}
System.out.println("n=" + n + ",m=" + m + ",t=" + t);
try {
System.out.println("故意抛出I/O异常!");
throw new java.io.IOException("我是故意的"); // 故意抛出异常
// System.out.println("这个输出语句肯定没有机会执行,必须注释,否则编译出错");
} catch (Exception e) { // Exception e 獲取 try 里的異常
System.out.println("用e.getMessage() 獲取出錯點信息=》发生异常:" + e.getMessage()); // e.getMessage() 獲取出錯點信息
// e.getClass() 獲取出錯點類型
System.out.println("用e.getClass() 獲取出錯點類型=》发生异常:" + e.getClass()); // java.io.IOException 這個出錯
// 獲得异常类型 可以通过Exception 的getClass().getName()方法来实现
}
}
}
输出结果
![](https://i-blog.csdnimg.cn/blog_migrate/8e3a0b93223bcc4589c411fc56f6e911.png)