JAVA中的异常使用
????????異常是程序開發(fā)中的避不開的一個(gè)問(wèn)題,特別是在大型應(yīng)用的開發(fā)中,為了使程序能夠保持穩(wěn)定的運(yùn)行,即使出錯(cuò)的時(shí)候,也能方便開發(fā)人員的根據(jù)錯(cuò)誤信息快速定位出錯(cuò)位置,這需要我們必須熟悉異常的基本知識(shí)。
Java異常中的關(guān)鍵字:
????? ? throw、throws、try、catch、finally。下面一段代碼簡(jiǎn)單介紹這幾個(gè)關(guān)鍵字的應(yīng)用場(chǎng)景
/*如果方法不進(jìn)行異常處理,一定要用 throws 拋出*/ public static int div(int _x, int _y) throws Exception{ int result = 0; try{ // 可能出異常的代碼塊 }catch(Exception e){ // 捕獲異常并處理的代碼塊 e.printStackTrace(); // 打印異常信息 throw new Exception("異常A"); // 拋出一個(gè)自定義異常 }finally { // 不管是否有異常都要執(zhí)行的代碼塊 return result; } }????throw與throws的區(qū)別:
????? ? throw用于在一個(gè)方法內(nèi)部拋出一個(gè)自己創(chuàng)建的異常,throws則是用在方法頭的后面。用于告知該方法可能會(huì)拋出哪些異常給上層應(yīng)用,注意此時(shí)上層應(yīng)用必須在寫代碼的時(shí)候添加處理該異常的方法。
一個(gè)標(biāo)準(zhǔn)的基礎(chǔ)Java異常處理案例:
class MyMath{
??? /*如果方法不進(jìn)行異常處理,一定要用 throws 拋出*/
??? public staticint div(int _x, int _y) throws Exception{
??????? int result = 0;
??????? System.out.println("【開始】進(jìn)行除法計(jì)算");
??????? // 方式一
//??????? try{
//??????????? result = _x / _y;
//??????? }catch (Exception e){
//??????????? throw e;
//??????? }finally {
//??????????? System.out.println("【結(jié)束】除法計(jì)算完畢");
//??????? }
??????? // 方式二(簡(jiǎn)寫)
??????? try{
??????????? result = _x / _y;
??????? }finally {
??????????? System.out.println("【結(jié)束】除法計(jì)算完畢");
??????? }
??????? return result;
??? }
}
public class Main {
??? public staticvoid main(String[] args) {
??????? try {
??????????? System.out.println(MyMath.div(10,0));
??????? } catch (Exception e) {
??????????? e.printStackTrace();
??????? }
??? }
}
????結(jié)果:
????
Exception與RuntimeException的區(qū)別:
????RuntimeException的類繼承關(guān)系:
????????java.lang.Object
????????????????java.lang.Throwable
????????????????????????java.lang.Exception
????????????????????????????????java.lang.RuntimeException
????區(qū)別概述:
????? ? Exception 是 RuntimeException 的父類(由上面關(guān)系知),使用 Exception 定義的異常都要去必須使用異常處理。????? ? RuntimeException 可以由用戶選擇性的來(lái)進(jìn)行異常處理。
????常見的 RuntimeException 有:?
ClassCastException:????????????類型轉(zhuǎn)換異常 IndexOutOfBoundsException:索引越界 ????????NoSuchElementException:? ?沒(méi)有這個(gè)元素 ????????NullPointerException:? ? ?空指針異常自定義異常:
??? ? 直接繼承 Exception 或者是 RuntimeException 即可。不過(guò)注意命名的時(shí)候后面一定要加上 Exception 這樣做更加規(guī)范。總結(jié)
以上是生活随笔為你收集整理的JAVA中的异常使用的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Java中的程序设计模式--单例与多例
- 下一篇: 正则表达式(基础、常用)----Java