JVM默認(rèn)處理方式
如果出現(xiàn)異常我們沒(méi)有處理袋哼,jvm會(huì)幫我們進(jìn)行處理,他會(huì)把異常的類型锐想,原因還有位置顯示在命令行并且還終止了程序,異常后面的代碼將不在執(zhí)行
package com.itheima_01;
import java.io.FileWriter;
import java.io.IOException;
/*
* 異常的處理方式:
*
*
* jvm處理異常的方式:
* 如果出現(xiàn)異常我們沒(méi)有處理,jvm會(huì)幫我們進(jìn)行處理,他會(huì)把異常的類型,原因還有位置顯示在命令行
* 并且還終止了程序,異常后面的代碼將不在執(zhí)行
*/
public class ExceptionDemo2 {
public static void main(String[] args) throws Exception {
System.out.println(2/0);
System.out.println("hello");
}
}
try…catch方式處理異常
捕獲:Java中對(duì)異常有針對(duì)性的語(yǔ)句進(jìn)行捕獲卿闹,可以對(duì)出現(xiàn)的異常進(jìn)行指定方式的處理捕獲異常格式:
try {
//需要被檢測(cè)的語(yǔ)句。
}
catch(異常類 變量) { //參數(shù)澳淑。
//異常的處理語(yǔ)句比原。
}
finally {
//一定會(huì)被執(zhí)行的語(yǔ)句。
}
try:該代碼塊中編寫可能產(chǎn)生異常的代碼杠巡。
catch:用來(lái)進(jìn)行某種異常的捕獲量窘,實(shí)現(xiàn)對(duì)捕獲到的異常進(jìn)行處理。
package com.itheima_01;
import java.io.FileWriter;
/*
* 異常處理方式:
* 捕獲處理
* try...catch語(yǔ)句
*
* try {
* 有可能出現(xiàn)問(wèn)題的代碼;
* }catch(ArithmeticException ae) {
* 處理異常;
* }
*
* try...catch的執(zhí)行順序
* 首先執(zhí)行try語(yǔ)句
* 如果發(fā)現(xiàn)異常氢拥,異常下面的代碼不再執(zhí)行蚌铜,直接跳入catch語(yǔ)句中,整個(gè)try...catch結(jié)束
* 如果沒(méi)有發(fā)現(xiàn)異常嫩海,try語(yǔ)句執(zhí)行結(jié)束后冬殃,try...catch直接結(jié)束不再執(zhí)行catch語(yǔ)句
* 拋出去
*
* jvm處理異常的方式:
* 如果出現(xiàn)異常我們沒(méi)有處理,jvm會(huì)幫我們進(jìn)行處理叁怪,他會(huì)把異常的類型审葬,原因顯示在命令行
* 并且還終止了程序,異常后面的代碼將不再執(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
*/
}