異常概述
什么是異常?
Java代碼在運(yùn)行時(shí)期發(fā)生的問(wèn)題就是異常。
在Java中,把異常信息封裝成了一個(gè)類。當(dāng)出現(xiàn)了問(wèn)題時(shí),就會(huì)創(chuàng)建異常類對(duì)象并拋出異常相關(guān)的信息(如異常出現(xiàn)的位置、原因等)。
在Java中使用Exception類來(lái)描述異常。

Exception類
查看API中Exception的描述,Exception 類及其子類是 Throwable 的一種形式,它用來(lái)表示java程序中可能會(huì)產(chǎn)生的異常,并要求對(duì)產(chǎn)生的異常進(jìn)行合理的異常處理。
繼續(xù)觀察,我們可以發(fā)現(xiàn)Exception有繼承關(guān)系,它的父類是Throwable。Throwable是Java 語(yǔ)言中所有錯(cuò)誤或異常的超類,即祖宗類。

Exception類

Throwable類
另外,在異常Exception類中,有一個(gè)子類要特殊說(shuō)明一下,RuntimeException子類,RuntimeException及其它的子類只能在Java程序運(yùn)行過(guò)程中出現(xiàn)。

RuntimeException
我們?cè)賮?lái)觀察Throwable類,能夠發(fā)現(xiàn)與異常Exception平級(jí)的有一個(gè)Error,它是Throwable的子類,它用來(lái)表示java程序中可能會(huì)產(chǎn)生的嚴(yán)重錯(cuò)誤。解決辦法只有一個(gè),修改代碼避免Error錯(cuò)誤的產(chǎn)生。

Error
package com.itheima_01;
import java.io.FileWriter;
/*
* Exception in thread "main" java.lang.ArithmeticException: / by zero
* at com.itheima_01.ExceptionDemo.main(ExceptionDemo.java:5)
* 我們?cè)趯?xiě)代碼的時(shí)候經(jīng)常出現(xiàn)一些小問(wèn)題,為了方便我們處理這些小問(wèn)題,Java為我們提供了異常機(jī)制
*
* 異常包含了錯(cuò)誤的類型、原因以及位置
*
* 異常:不正常,我們?cè)趯?xiě)代碼的時(shí)候出現(xiàn)編譯或者運(yùn)行時(shí)的錯(cuò)誤
*
* 異常的體系結(jié)構(gòu):
* Throwable(是最頂層)
* Error:出現(xiàn)的不能處理的嚴(yán)重問(wèn)題
* Exception:可以處理的問(wèn)題
*
* 電腦壞了:
* 系統(tǒng)中毒:重裝系統(tǒng)就可以了
* 主板壞了:買一臺(tái)新的
*/
public class ExceptionDemo {
public static void main(String[] args) {
// int a = 10 / 0;
// System.out.println(a);
FileWriter fw = new FileWriter("a.txt");
}
}