什麼是異常?java
在java程序中,咱們每每會遇到一些沒有預料到的狀況,或者超出了不可控的範圍,例如數據損壞,嘗試打開一些不存在的文件等等,簡而言之,這些都會成爲異常。學習
咱們先看一下一個簡單的異常程序spa
package demo;線程
public class Yichag {編譯器
public static void main(String[] args) {it
//定義一個int變量而且賦值io
int a=3/0;編譯
System.out.print(a);class
}import
}
這個程序運行結果確定會報錯的,由於3\0是錯誤的,可是編譯器不會檢查出來,只是運行起來纔會報錯,圖就不貼了。。
因此咱們就知道異常的發生有3種狀況:1是編譯異常(寫代碼時的異常),2是運行異常(如上面的程序),3是錯誤的異常。而且異常是出現了後面的語句就不會執行的。
那麼問題來了,咱們該怎麼解決異常呢?
異常的解決方法通常有兩種,一是捕獲異常,二是拋出異常
捕捉異常
java中異常捕獲的結構由try,catch,finally ,組成,其中,try語句裏面放可能出現異常的語句,catch裏面放用來激發異常的語句或者輸出相關異常信息,finally是最後執行的部分,通常是用來關閉未出現異常的語句執行的操做,以避免發生未知錯誤,但尤其重要的一點是:finally無論有沒有異常,都會執行。
下面咱們來看看捕獲異常的程序代碼結構
t你
try{
}
catch( Exception e)
{
}finally{
}
下面弄一個簡單的程序來體驗下
package demo;
public class Yichag {
public static void main(String[] args) {
//定義一個int變量而且賦值
try{
int a=Integer.parseInt("20L");
System.out.print(a);
}
catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
finally{
System.out.print("我被執行了!!!");
}
}
}
可見異常被捕獲後,finally仍會執行。
關於finally不會執行的狀況
在finally語句塊中出現了異常
在前面的語句塊中強制退出了,如System.exit()
程序所在的線程死亡
cpu關閉
使用throws關鍵字拋出異常
直接看代碼
package demo;
import java.io.FileNotFoundException;
import java.io.FileReader;
public class Yichag {
public static void main(String[] args) throws Exception {//調用時也拋出異常
//直接調用
here();
}
//聲明一個方法體
public static void here() throws FileNotFoundException{//用throws拋出異常
FileReader fr=new FileReader("D:\\aiwei.txt");
}
}
以上就是java中異常的一些簡單知識,關於異常還有許多深刻的地方,因爲本人也是初學者,剛剛學到這個知識,關於還有異常類的使用你們也能夠去多多瞭解,但我認爲初學者對於這方面
沒必要太過深究,瞭解其概念和用處便可,後面學習遇到這方面的問題時經過結合新的知識來了解,深刻也是一個很好的辦法。。