JVM默認(rèn)處理方式
如果出現(xiàn)異常我們沒有處理,jvm會幫我們進(jìn)行處理,他會把異常的類型,原因還有位置顯示在命令行并且還終止了程序,異常后面的代碼將不在執(zhí)行
package com.itheima_01;
import java.io.FileWriter;
import java.io.IOException;
/*
* 異常的處理方式:
*
*
* jvm處理異常的方式:
* 如果出現(xiàn)異常我們沒有處理,jvm會幫我們進(jìn)行處理,他會把異常的類型,原因還有位置顯示在命令行
* 并且還終止了程序,異常后面的代碼將不在執(zhí)行
*/
public class ExceptionDemo2 {
public static void main(String[] args) throws Exception {
System.out.println(2/0);
System.out.println("hello");
}
}
try…catch方式處理異常
捕獲:Java中對異常有針對性的語句進(jìn)行捕獲,可以對出現(xiàn)的異常進(jìn)行指定方式的處理捕獲異常格式:
try {
//需要被檢測的語句。
}
catch(異常類 變量) { //參數(shù)。
//異常的處理語句。
}
finally {
//一定會被執(zhí)行的語句。
}
try:該代碼塊中編寫可能產(chǎn)生異常的代碼。
catch:用來進(jìn)行某種異常的捕獲,實(shí)現(xiàn)對捕獲到的異常進(jìn)行處理。
package com.itheima_01;
import java.io.FileWriter;
/*
* 異常處理方式:
* 捕獲處理
* try...catch語句
*
* try {
* 有可能出現(xiàn)問題的代碼;
* }catch(ArithmeticException ae) {
* 處理異常;
* }
*
* try...catch的執(zhí)行順序
* 首先執(zhí)行try語句
* 如果發(fā)現(xiàn)異常,異常下面的代碼不再執(zhí)行,直接跳入catch語句中,整個try...catch結(jié)束
* 如果沒有發(fā)現(xiàn)異常,try語句執(zhí)行結(jié)束后,try...catch直接結(jié)束不再執(zhí)行catch語句
* 拋出去
*
* jvm處理異常的方式:
* 如果出現(xiàn)異常我們沒有處理,jvm會幫我們進(jìn)行處理,他會把異常的類型,原因顯示在命令行
* 并且還終止了程序,異常后面的代碼將不再執(zhí)行
*/
public class ExceptionDemo2 {
public static void main(String[] args) {
try {
System.out.println(1);
System.out.println(2 / 0);
System.out.println(2);
}catch(ArithmeticException ae) {
System.out.println("除數(shù)不能為0");
}
System.out.println("3");
}
/*
* 1
* 除數(shù)不能為0
* 3
*/
}