關于java的異常,剛接觸java的同學肯定非常陌生。其實他跟c中的出錯判斷是類似的。在一個程序中難免會出現(xiàn)一些問題,但是在出現(xiàn)問題以后怎么辦,這才是我們要考慮的問題。
我們來看看c語言中的出錯判斷,這種出錯判斷完全是程序員自己編寫的,一般我們用”return -1”做最后判斷的語句,然后可以判斷函數(shù)的返回值就可以知道函數(shù)有沒有出錯,但是這樣有沒有問題?就比如說在一個程序體內(nèi)有多個出錯判斷的語句,我們這樣只能知道函數(shù)體出現(xiàn)了問題,而不知道到底是那個出錯判斷出現(xiàn)問題。其實在c語言中也有這種情況的解決方法就是“goto”,這種方法一般很少用,很多情況下出現(xiàn)在驅(qū)動的程序中。我們來看出錯判斷在java中是怎么解決的,就是用異常。異常是怎么解決上面的問題呢?其實在java中有個重要的思想,就是面向?qū)ο笏枷?,他就把異常封裝成一個類叫“異常類”。然后把每個可能出現(xiàn)的問題都對應一個相應的“異常類”這樣就可以把每個出現(xiàn)問題的地方,都可以做相應的操作。
我們首先來看java異常的分類,異常的基類是Throwable類,Throwable類下邊又分兩個大類,一個是Error類,一個是Exception類。首先來看Error類,如果出現(xiàn)了這個錯誤程序員是不能控制的, 因為他經(jīng)常是一些虛擬機的那些問題,一般出現(xiàn)了這個問題我們也不能去操作。然后再去看看Exception類,這個類就是咱們在程序中經(jīng)常出現(xiàn)的類,這個類在程序中也要分很多的子類。我們就介紹最常見的兩個子類“IOException”,“TimerunException”。IOException是關于文件異常的類,一般就是文件不存在,讀寫出現(xiàn)問題就用這個類。 還有一個TimerunException類,這個類就是程序在運行期間出現(xiàn)的問題,比如說數(shù)組越界,除數(shù)不能為0,等等。
關于異常類的使用是很簡單的。一般使用三個語句塊來實現(xiàn)。Try{}catch(){}finally{}。其中finally是可選的,就是可寫可不寫。Try{}語句就是拋出異常,里面放的是可能出現(xiàn)問題的語句塊。在java中如果語句出現(xiàn)了問題,就會自動的生成一個異常類。Catch(){}語句就是捕獲異常。一般就是catch(Exception e){.. . . . }的形式,在這個語句里我們就可以針對相應的異常做一些操作,比如說提示什么的。還有一個是finally{}語句塊,這條語句如果存在,不管有沒有異常都會執(zhí)行。