开布只 10 ·捕捉异常P254 try{ <try-block>} catch (exception_type id){<handler>) catch (exception_type id){<handler>} finally <finally-block>} ·示例1 ·多异常的处理 P255-256 示例2
10-11 Programming in Java 异常处理 • 捕捉异常 P254 try { <try-block> } catch (exception_type id) { <handler>} catch (exception_type id) { <handler>} ...... finally { <finally-block> } • 示例1 • 多异常的处理 P255-256 •示例2
10 fee() fie() foe() throws X throws X try try { fieO); foe(); throw new XO ∥..} ∥..} ∥.… catch(X e) finally {. finall y X 返回
10-12 Programming in Java fee() fie() foe() throws X throws X try { //… fie(); // … } catch(X e) { //… } finally { //… } try { //… foe(); // … } finally { //… } //… throw new X() // … X 示例 1 返回
示例 class SuperException extends Exception { class SubException extends SuperException{} class BadCatch public void goodTry({ try throw new SubException(; catch (SuperException superRef){.. }catch(SubException subRef){.∥永远不会执行 }∥ctch顺序不合理,通常子类异常放在父类 异常前面} 返回
10-13 Programming in Java 示例 2 class SuperException extends Exception { } class SubException extends SuperException { } class BadCatch { public void goodTry() { try { throw new SubException(); } catch (SuperException superRef) { … } catch (SubException subRef) {…// 永远不会执行 } // catch 顺序不合理,通常子类异常放在父类 异常前面 } } 返回
汗都只6测≤行 10 异常处理 抛出异常 建立异常类 try... public boolean myM(int x) public class A extends throws AnException{ Exception{ catch {.. throw new AnExceptionO; finally.. 异常传播
10-14 Programming in Java 异常处理 try { … } catch { catch { … } 抛出异常 public boolean myM (int x) throws AnException AnException { … throw new throw new AnException AnException(); } finally { finally { … } 建立异常类 public class A extends public class A extends Exception { Exception { … } 异常传播 异常处理机制总结
线覆量径 10 数据块 进程1 数据块 进程→ 程序段 程序段 CPU◆ 数据块 线程1 进程2 程序段 线程N ● 程序段 多进程 多线程
10-15 Programming in Java 进程1 数据块 程序段 进程2 数据块 程序段 . . . . . . 数据块 程序段 线程1 . . . 线程N 程序段 多进程 多线程 CPU 进程 线程 & 进程