package com.swift; public class Exception_TestC { public static void main(String[] args) { /* * 第5题: 有一个类为ClassA,有一个类为ClassB,在ClassB中有一个方法b,此方法抛出异常,在ClassA类中有一个 * 方法a,请在这个方法中调用b,然后抛出异常。在客户端有一个类为TestC,有一个方法为c ,请在这个方法中捕 捉异常的信息。Java异常的处理机制 * * 如果try或catch中有return,执行try catch finally return,catch的执行看try中是否真有异常 * throw是抛出异常 throws是声明异常,throw用于方法体中,用来抛出一个实际的异常对象,使用throw后,要么使用try * catch捕获异常,要么使用throws声明异常 catch中可以再次throw抛出异常,以便调用其方法再次捕获并处理 * 自定义异常用于标记业务逻辑的异常,避免与标准异常混淆 */ new TestC().c(); } } class A { public void a() throws Exception { new B().b(); } } class B { public void b() { try { int a = -1; if (a < 0) { throw new MyException("B....不能使用负数..throw by ClassB.methodB"); } } catch (MyException e) { e.printStackTrace(); } } } class TestC{ public void c() { try { new A().a(); } catch (Exception e) { e.printStackTrace(); } } } class MyException extends Exception { public MyException(String msg) { super(msg); } }