亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > Java > 正文

Java--異常(Exception)

2019-11-06 06:49:16
字體:
來源:轉載
供稿:網友

一、異常的概述和分類

1、異常的概述:異常就是java程序在運行過程中出現的錯誤。

2、異常的分類

(1)Error:服務器宕機,數據庫崩潰等

(2)Exception

3、異常的繼承體系

Throwable

Error

Exception

 RuntimeException

二、JVM默認是如何處理異常的

main函數收到這個問題時,有兩種處理方式:

自己將該問題處理,然后繼續運行

自己沒有針對的處理方式,只有交給調用main的jvm來處理

jvm有一個默認的異常處理機制,就將該異常進行處理.

并將該異常的名稱,異常的信息.異常出現的位置打印在了控制臺上,同時將程序停止運行

三、try...catch的方式處理異常

異常處理的兩種方式

1、try…catch…finally

try catch

try catch finally

try finally 

2、throws

try...catch處理異常的基本格式

try…catch…finally

try:用來檢測異常

catch:用來捕獲異常

finally:釋放資源

try后面如果跟多個catch,那么小的異常放在前面,大的異常放在后面,根據多態原理,如果大的放                  在前面,就會將所有子類對象接收,后面的catch就沒有意義了;

Android開發處理異常:try{}catch(Exception e){}

JavaEE服務端開發處理異常:一般都是底層開發,從底層向上拋,如果使用try...catch會隱藏異常,

帶來巨大隱患,如果異常全部爆發那后果不堪設想

四、編譯期異常和運行期異常的區別

Java中的異常被分為兩大類:編譯時異常和運行時異常。

所有的RuntimeException類及其子類的實例被稱為運行時異常,其他的異常就是編譯時異常

編譯時異常

Java程序必須顯示處理,否則程序就會發生錯誤,無法通過編譯

運行時異常

無需顯示處理,也可以和編譯時異常一樣處理

五、Throwable的幾個常見方法

1、getMessage()

獲取異常信息,返回字符串。

2、toString()

獲取異常類名和異常信息,返回字符串。

3、PRintStackTrace()

獲取異常類名和異常信息,以及異常出現在程序中的位置。返回值void。

六、throws的方式處理異常

定義功能方法時,需要把出現的問題暴露出來讓調用者去處理。

那么就通過throws在方法上標識。

七、throw的概述以及和throws的區別

throw的概述

在功能方法內部出現某種情況,程序不能繼續運行,需要進行跳轉時,就用throw把異常對象拋出。

throws和throw的區別

throws

用在方法聲明后面,跟的是異常類名

可以跟多個異常類名,用逗號隔開

表示拋出異常,由該方法的調用者來處理

throw

用在方法體內,跟的是異常對象名

只能拋出一個異常對象名

表示拋出異常,由方法體內的語句處理

八、finally關鍵字的特點及作用

1、finally的特點

被finally控制的語句體一定會執行

特殊情況:在執行到finally之前jvm退出了(比如System.exit(0))

2、finally的作用

用于釋放資源,在IO流操作和數據庫操作中會見到

3、final,finally,finalize區別

(1)final可以修飾類:不能被繼承

修飾方法:不能被重寫

修飾變量:只能賦值一次

(2)finally是try語句中的一個語句體,不能被單獨使用,用來釋放資源

(3)finalize是Object一個方法,當垃圾回收期確定不存在該對象的更多引用時,由對象的垃圾回收器調用此方法

九、異常注意事項

(1)子類重寫父類方法時,子類的方法必須拋出相同的異常或父類異常的子類

(2)如果父類拋出了多個異常,子類重寫父類時,只能拋出相同的異?;蛘呤撬淖蛹?子類不能拋出父類沒有的異常

(3)如果被重寫的方法沒有異常拋出,那么子類的方法絕對不可以拋出異常,如果子類方法內有異常發生,那么子類只能try,不能throws

如何使用異常處理

原則:如果該功能內部可以將問題處理,用try,如果處理不了,交由調用者處理,這是用throws

區別:

后續程序需要繼續運行就try

后續程序不需要繼續運行就throws

如果JDK沒有提供對應的異常,需要自定義異常

public class ExceptionClass {	public static void main(String[] args) throws AgeOutException {		/*		 *     一、異常的概述和分類					1、異常的概述:異常就是Java程序在運行過程中出現的錯誤。					2、異常的分類						(1)Error:服務器宕機,數據庫崩潰等						(2)Exception					3、異常的繼承體系					  Throwable						Error							Exception							RuntimeException		       二、JVM默認是如何處理異常的					main函數收到這個問題時,有兩種處理方式:						自己將該問題處理,然后繼續運行						自己沒有針對的處理方式,只有交給調用main的jvm來處理						jvm有一個默認的異常處理機制,就將該異常進行處理.						并將該異常的名稱,異常的信息.異常出現的位置打印在了控制臺上,同時將程序停止運行		       三、try...catch的方式處理異常				    異常處理的兩種方式					1、try…catch…finally						try catch						try catch finally						try finally 					2、throws				 try...catch處理異常的基本格式					try…catch…finally					try:用來檢測異常					catch:用來捕獲異常					finally:釋放資源				 try后面如果跟多個catch,那么小的異常放在前面,大的異常放在后面,根據多態原理,如果大的放在前面				  就會將所有子類對象接收,后面的catch就沒有意義了;				 Android開發處理異常:try{}catch(Exception e){}				 JavaEE服務端開發處理異常:一般都是底層開發,從底層向上拋,如果使用try...catch會隱藏異常,				 帶來巨大隱患,如果異常全部爆發那后果不堪設想		       四、編譯期異常和運行期異常的區別					 Java中的異常被分為兩大類:編譯時異常和運行時異常。					             所有的RuntimeException類及其子類的實例被稱為運行時異常,其他的異常就是編譯時異常					   編譯時異常						 Java程序必須顯示處理,否則程序就會發生錯誤,無法通過編譯					   運行時異常						   無需顯示處理,也可以和編譯時異常一樣處理		       五、Throwable的幾個常見方法					 1、getMessage()						      獲取異常信息,返回字符串。					 2、toString()						      獲取異常類名和異常信息,返回字符串。					 3、printStackTrace()						      獲取異常類名和異常信息,以及異常出現在程序中的位置。返回值void。		       六、throws的方式處理異常					定義功能方法時,需要把出現的問題暴露出來讓調用者去處理。					那么就通過throws在方法上標識。		       七、throw的概述以及和throws的區別			      throw的概述					在功能方法內部出現某種情況,程序不能繼續運行,需要進行跳轉時,就用throw把異常對象拋出。				  throws和throw的區別					 throws						 用在方法聲明后面,跟的是異常類名						 可以跟多個異常類名,用逗號隔開						 表示拋出異常,由該方法的調用者來處理					 throw						 用在方法體內,跟的是異常對象名						 只能拋出一個異常對象名						 表示拋出異常,由方法體內的語句處理		       八、finally關鍵字的特點及作用				  1、finally的特點					     被finally控制的語句體一定會執行					     特殊情況:在執行到finally之前jvm退出了(比如System.exit(0))				  2、finally的作用					     用于釋放資源,在IO流操作和數據庫操作中會見到			      3、final,finally,finalize區別			        (1)final可以修飾類:不能被繼承			                             修飾方法:不能被重寫			                             修飾變量:只能賦值一次			        (2)finally是try語句中的一個語句體,不能被單獨使用,用來釋放資源			        (3)finalize是Object一個方法,當垃圾回收期確定不存在該對象的更多引用時,由對象的垃圾回收器調用此方法		        九、異常注意事項					  (1)子類重寫父類方法時,子類的方法必須拋出相同的異?;蚋割惍惓5淖宇?				  (2)如果父類拋出了多個異常,子類重寫父類時,只能拋出相同的異?;蛘呤撬淖蛹?子類不能拋出父類沒有的異常					  (3)如果被重寫的方法沒有異常拋出,那么子類的方法絕對不可以拋出異常,如果子類方法內有異常發生,那么子類只能try,不能throws				   如何使用異常處理						原則:如果該功能內部可以將問題處理,用try,如果處理不了,交由調用者處理,這是用throws						區別:							后續程序需要繼續運行就try							后續程序不需要繼續運行就throws				   如果JDK沒有提供對應的異常,需要自定義異常		 * */				demo();		div();		moreCatch();		moreCatch1();		throwable();//		throwss();		finallys();	}	private static void finallys() {		System.out.println("==========finally===========");		try{			System.out.println(10/0);		}catch (Exception e) {			System.out.println("程序異常");		}finally {			System.out.println("我執行了");		}	}	private static void throwss() throws AgeOutException {		System.out.println("==========throws===========");		Person p = new Person();		p.setAge(-10);		System.out.println(p.getAge());		System.out.println();	}	private static void throwable() {		System.out.println("==========Throwable===========");		try{			System.out.println(10/0);		}catch (Exception e) {			System.out.println(e.getMessage());			System.out.println(e);   //默認調用toString方法			e.printStackTrace();     //jvm默認調用此方法處理異常		}		System.out.println();	}	private static void moreCatch1() {		System.out.println("==========多個catch,JDK7===========");		int[] arr = {11,22,33};		int a = 10;		int b = 0;		//JDK7處理多個異常添加  |或 運算符		try {			System.out.println(a/b);;			System.out.println(arr[5]);		} catch (ArithmeticException | ArrayIndexOutOfBoundsException e) {			System.out.println("異常了");		}	}	private static void moreCatch() {		System.out.println("==========多個catch===========");		int[] arr = {11,22,33};		int a = 10;		int b = 0;		try {			int x = a/b;			System.out.println(arr[5]);			arr = null;			System.out.println(arr[4]);		} catch (ArithmeticException e) {			System.out.println("出錯了,除數為0了");		}catch (ArrayIndexOutOfBoundsException e){			System.out.println("數組索引越界");		}catch (Exception e){			System.out.println("其他異常");		}	}	private static void demo() {		int[] arr = {11,22,33};//		arr = null;//		System.out.println(arr[0]);  //NullPointerException//		System.out.println(arr[5]);  		//異常信息從下往上看,第二行指出異常在哪一行,第一行指出哪種類型異常		/*Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 5   		at com.lin.exception.ExceptionClass.main(ExceptionClass.java:27)*/	}	private static void div() {		System.out.println("==========try...catch===========");		try{			int x = 10/0;			System.out.println(x);		}catch(ArithmeticException a){			System.out.println("出錯了,除數為0了");		}		System.out.println("處理異??梢岳^續往下執行,不處理直接崩潰");	}}class Person{	private int age;	private String name;		public Person() {		super();	}	public Person(int age, String name) {		super();		this.age = age;		this.name = name;	}	public int getAge() {		return age;	}	public void setAge(int age) throws AgeOutException {		if(age >= 0 && age <= 150){			this.age = age;		}else{//			throw new Exception("年齡非法");			throw new AgeOutException("年齡非法");		}	}	public String getName() {		return name;	}	public void setName(String name) {		this.name = name;	}}class AgeOutException extends Exception{	public AgeOutException() {		super();	}	public AgeOutException(String message) {		super(message);	}}


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
久久久久女教师免费一区| www.久久久久| 欧美寡妇偷汉性猛交| www.xxxx欧美| 最好看的2019的中文字幕视频| 91精品国产沙发| 亚洲欧美成人在线| 午夜精品一区二区三区在线视| 日韩大陆欧美高清视频区| 国产精品草莓在线免费观看| 亚洲xxxx做受欧美| 亚洲精品在线看| 国产成人自拍视频在线观看| 亚洲自拍偷拍网址| 欧美夫妻性生活视频| 在线观看国产成人av片| 日韩电影免费观看中文字幕| 亚洲精品国产精品国自产在线| 国产精品久久久久9999| 中文字幕亚洲欧美| 国产欧美在线播放| 国产精品女人网站| 久久躁日日躁aaaaxxxx| 91久久综合亚洲鲁鲁五月天| 自拍视频国产精品| 亚洲精品免费一区二区三区| 亚洲精品久久久久久久久久久久| 精品欧美国产一区二区三区| 亚洲xxxxx电影| 国产精品情侣自拍| 欧美性一区二区三区| 久久天天躁夜夜躁狠狠躁2022| 中文字幕日本欧美| 国产精品久久网| 精品香蕉在线观看视频一| 搡老女人一区二区三区视频tv| 久久亚洲成人精品| 亚洲精品动漫100p| 91精品国产免费久久久久久| 国产日韩欧美一二三区| 欧美日韩ab片| 主播福利视频一区| 欧美另类老女人| 日韩精品欧美国产精品忘忧草| 日韩精品免费一线在线观看| 国产成人综合一区二区三区| 欧美一区二三区| 95av在线视频| 精品国产91久久久| 国产成人精品视频| 日韩精品在线视频观看| 亚洲人高潮女人毛茸茸| 久久久久久有精品国产| 亚洲最大av网站| 91性高湖久久久久久久久_久久99| 久久亚洲精品毛片| 成人午夜激情免费视频| 久久久免费电影| 亚洲人成77777在线观看网| 亚洲国产99精品国自产| 欧美自拍视频在线观看| 国产精品视频内| 亚洲人a成www在线影院| 日韩电视剧在线观看免费网站| 亚洲欧洲一区二区三区在线观看| 成人黄色短视频在线观看| 日韩av在线免费播放| 国产精品精品一区二区三区午夜版| 欧美专区在线播放| 日韩欧美主播在线| 日韩不卡在线观看| 欧美性视频精品| 国产一区二区精品丝袜| 欧美性猛交xxxx免费看久久久| 久久久久久国产精品久久| 成人网页在线免费观看| 日韩精品亚洲元码| 国产日韩精品视频| 欧美极品美女视频网站在线观看免费| 成人免费大片黄在线播放| 精品久久久久久久久久久久久| 国产精品一区二区三区毛片淫片| 亚洲美女又黄又爽在线观看| 另类天堂视频在线观看| 久久久亚洲福利精品午夜| 亚洲人成人99网站| 欧美日韩加勒比精品一区| 成人av.网址在线网站| 国产欧美精品一区二区三区介绍| 久久99国产精品久久久久久久久| 日韩国产欧美精品一区二区三区| 宅男66日本亚洲欧美视频| 国产视频久久网| 在线观看国产精品日韩av| 国产在线高清精品| 日韩av免费网站| 欧美日韩另类字幕中文| 欧美精品免费看| 欧美网站在线观看| 热门国产精品亚洲第一区在线| 97视频在线观看网址| 欧美大片网站在线观看| 亚洲精品国产电影| 久久夜色精品国产亚洲aⅴ| 午夜精品久久久久久久99黑人| 高跟丝袜一区二区三区| 欧美电影免费播放| 欧美亚洲伦理www| 国产一区二区美女视频| 亚洲欧美一区二区三区四区| 国产精品高潮呻吟久久av黑人| 亚洲一区制服诱惑| 视频直播国产精品| 一区二区三区视频免费| 69av在线播放| y97精品国产97久久久久久| 日韩av电影国产| 日韩激情av在线播放| 久久在线免费视频| www.亚洲一区| 亚洲高清福利视频| 欧美极品欧美精品欧美视频| 亚洲成人国产精品| 2019亚洲男人天堂| 欧美制服第一页| 亚洲一区二区日本| 黑人巨大精品欧美一区二区一视频| 国产日韩综合一区二区性色av| 亚州欧美日韩中文视频| 亚洲精品黄网在线观看| 国产亚洲欧美日韩一区二区| 蜜臀久久99精品久久久久久宅男| 久久免费福利视频| 中文字幕日韩高清| 欧美一级在线亚洲天堂| 怡红院精品视频| 一本色道久久88精品综合| 成人xxxx视频| 久久国产精品久久国产精品| 久久久免费精品| 精品国产91乱高清在线观看| 中文字幕亚洲综合久久筱田步美| 九九热99久久久国产盗摄| 久久99亚洲热视| 欧美色欧美亚洲高清在线视频| 欧美成人三级视频网站| 国产丝袜一区视频在线观看| 国产成人啪精品视频免费网| 欧美性猛交xxxx免费看| 欧美性jizz18性欧美| 国产在线拍偷自揄拍精品| 色综合久久久久久中文网| 久久国产精品久久久久久| 国产欧美精品日韩| 欧美夫妻性生活xx| 亚洲国内精品视频| 在线日韩日本国产亚洲| 国产精品1区2区在线观看| 成人欧美一区二区三区在线湿哒哒| 亚洲人成电影在线观看天堂色| 国产拍精品一二三| 777午夜精品福利在线观看| 亚洲精品国产综合区久久久久久久| 久久99精品视频一区97|