關於Java語言的異常
導語:Java語言程序運行過程中的不正常現象就叫異常,那麼都有哪些情況呢?讓我們瞭解一下吧!
(1)程序運行過程中的不正常現象就叫異常。
(2)導致程序運行不正常的現象有很多,所以,就有很多的異常對象。
而這些異常對象存在着共性的內容,所以,可以不斷的進行抽取。最終形成了異常的體系結構。
異常體系的根類是:Throwable
Throwable:
|--Error:重大的問題,我們處理不了。也不需要編寫代碼處理。比如説內存溢出。
|--Exception:一般性的錯誤,是需要我們編寫代碼進行處理的.。
|--RuntimeException:運行時異常,這個我們也不需要處理。
其實就是為了讓他在運行時出問題,然後我們回來修改代碼。
(3)異常的分類
異常有兩種:
編譯時被檢測異常:
該異常在編譯時,如果沒有處理(沒有拋也沒有try),編譯失敗。
該異常被標識,代表這可以被處理。
運行時異常(編譯時不檢測)
在編譯時,不需要處理,編譯器不檢查。
該異常的發生,建議不處理,讓程序停止。需要對代碼進行修正。
(4)異常體系的特點:
異常體系中的所有類及其子類對象都具備可拋性。也就是説可以被throw和throws關鍵字所操作。
(5)main方法是如何處理異常的。
A:在main裏面編寫代碼進行處理
B:交給jvm自己進行處理。採用的是jvm的默認處理方式。
其實就是相當於調用了異常對象的printStackTrace()方法。
(6)Throwable類的學習
getMessage():獲取異常信息,返回字符串。
toString():獲取異常類名和異常信息,返回字符串。
printStackTrace():獲取異常類名和異常信息,以及異常出現在程序中的位置。返回值void。
(7)異常的處理·
A:lly
基本格式:
try
{
可能出現異常的代碼
}
catch(異常對象)
{
異常處理代碼
}
finally
{
釋放資源
}
變形格式:
h
h...
lly
**多個異常同時被捕獲的時候,記住一個原則:
先逮小的,再逮大的。
**finally:永遠被執行,除非退出jvm。(0);
面試題2個。
***:final,finally,finalize區別。
final是最終的意思。它可以用於修飾類,成員變量,成員方法。
它修飾的類不能被繼承,它修飾的變量時常量,它修飾的方法不能被重寫。
finally:是異常處理裏面的關鍵字。
它其中的代碼永遠被執行。特殊情況:在執行它之前jvm退出。(0);
finalize:是Object類中的一個方法。
它是於垃圾回收器調用的方式。
***:假如catch中有return語句, finally裏中的代碼會執行嗎?
是在return前,還是在return後呢?
會,在return前執行finally裏面的代碼。
(8)Exception和RuntimeException的區別
A:Exception:一般性的錯誤,是需要我們編寫代碼進行處理的。
B:RuntimeException:運行時異常,這個我們也不需要處理。
其實就是為了讓他在運行時出問題,然後我們回來修改代碼。
在用throws拋出一個的時候,如果這個異常是屬於RuntimeException的體系的時候,
我們在調用的地方可以不用處理。(RuntimeException和RuntimeException的子類)
在用throws拋出一個的時候,如果這個異常是屬於Exception的體系的時候,
我們在調用的地方必須進行處理或者繼續拋出。
(9)自定義異常
定義類繼承Exception或者RuntimeException
1,為了讓該自定義類具備可拋性。
2,讓該類具備操作異常的共性方法。
class MyExcepiton extends Exception
{
MyExcepiton(){}
MyExcepiton(String message)
{
super(message);
}
}
class MyException extends RuntimeException
{
MyExcepiton(){}
MyExcepiton(String message)
{
super(message);
}
}
(10)throws和throw的區別
A:有throws的時候可以沒有throw。
有throw的時候,如果throw拋的異常是Exception體系,那麼必須有throws在方法上聲明。
B:throws用於方法的聲明上,其後跟的是異常類名,後面可以跟多個異常類,之間用逗號隔開
throw用於方法體中,其後跟的是一個異常對象名。
-
Java中如何獲取Spring中配置的bean
Spring是一個分層的JavaSE/EEfull-stack(一站式)輕量級開源框架。在Java中如何獲取Spring中配置的'bean?下面本站小編帶大家一起來看看詳細操作,希望對大家有所幫助!想了解更多相關信息請持續關注我們應屆畢業生考試網!一、什麼是Spring?Spring是一個輕量級的控...
-
全國計算機等級《二級JAVA》命題預測試卷
以下是本站小編帶來的全國計算機等級《二級JAVA》命題預測試卷,歡迎學習!更多內容請關注應屆畢業生考試網!1、軟件生命週期是指()。A.軟件產品從提出、實現、使用維護到停止使用退役的過程B.軟件從需求分析、設計、實現到測試完成的過程,C.軟件的開發過程D.軟件...
-
Java語法基礎for語句練習
本文是本站小編搜索整理的關於Java語法基礎for語句練習,供參考學習,希望對大家有所幫助!想了解更多相關信息請持續關注我們應屆畢業生考試網!控制語句——for練習語句的嵌套應用累加求和,計數器循環嵌套一、語句的嵌套應用語句嵌套形式。其實就是語句中...
-
計算機二級JAVA考試構建JAVA程序2017
很多人一見到説要編程就以為很難,其實只有一點一滴學知識點也不難,下面是小編整理的計算機二級JAVA考試構建JAVA程序介紹,歡迎閲讀!第一個javaapplicationjava程序分為javaapplication(java應用程序)和javaapplet(java小應用程序)兩種。下面讓我們編寫一個java應...