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