運行時異常:Throwable繼承層次結構,可見分紅兩大類Error和Exception:php
Exception(異常):指程序有可能恢復的異常狀況,表示程序自己能夠處理的異常。又分兩大類:java
異常處理機制git
從異常是否必須須要被處理的角度來看怎麼分類程序員
異常又可分爲不受檢查異常和受檢查異常兩種狀況:github
運用Java異常處理機制?面試
異常處理的原理?數據庫
Java中檢查異常和非檢查異常的區別編程
檢查型異常(CheckedException)segmentfault
非檢查型異常(UncheckedException)技術博客大總結markdown
異常處理的過程當中,你遵循那些好的實踐?
throw 和 throws這兩個關鍵字在java中有什麼不一樣?
private static voidshow() { throw new UnsupportedOperationException(「拋出異常」); }
你知道什麼是「異常鏈」嗎?
能夠有一個空的catch塊嗎?
Java異常類有哪些的重要方法?
Exception和它的全部子類沒有提供任何特殊方法供使用,它們的全部方法都是來自其基類Throwable。
致使「主線程中的異常」的不一樣場景是什麼?
一些常見的主線程異常狀況是:
看下面這段代碼有什麼問題?
public class SuperClass { public void start() throws IOException{ throw new IOException("Not able to open file"); } } public class SubClass extends SuperClass{ public void start() throws Exception{ throw new Exception("Not able to start"); } }
針對拋異常是IOException仍是Exception,能隨便寫嗎,結合案例說一下?
public static void start(){ System.out.println("Java Exception"); } public static void main(String args[]) { try{ start(); }catch(IOException e){ e.printStackTrace(); } }
捕獲異常時,爲什麼在catch中要注意異常層級關係?須要注意哪些問題?
public static void start() throws IOException, RuntimeException{ throw new RuntimeException("Not able to Start"); } public static void main(String args[]) { try { start(); } catch (Exception e) { e.printStackTrace(); } catch (RuntimeException e2) { e2.printStackTrace(); } }