C++ 和 Java 中捕获基类和派生类异常

2024年8月28日 | 阅读 4 分钟

在深入探讨我们的主题“在 C++ 和 Java 中将基类和派生类作为异常捕获”之前,让我们先了解什么是异常和异常处理。异常是我们在编程时发生的错误,通常被视为不必要的错误,或者更好地理解为。它们就像编程过程中遇到的障碍,而异常处理是用于处理发生的异常或限制的错误处理机制。

在 C++ 和 Java 编程语言中,有多种方法可以处理异常处理,并将基类和派生类作为异常的一部分进行捕获。

  • 在基类和派生类被捕获为异常的情况下,我们必须在显示输出终端上看到,所声明的派生类的 catch 块出现在我们声明的基类类型之前。
  • 上述说法是有效的,我们甚至可以重新检查,如果我们把基类放在派生类之前,那么我们声明的派生类将永远不会被访问到。

算法(在 C++ 和 Java 中将基类和派生类作为异常捕获)

示例

C++ 代码

输出

prog.cpp: In function 'int main()':
prog.cpp:20:5: warning: exception of type 'derived_' will be caught
    catch (derived_ d) {
    ^
prog.cpp:17:5: warning:    by the earlier handler for 'base_.'
    catch (base_ b) {
/ tm  p /vLt kM  pH G zo.o
OH! Caught Based Exception occurred

C++ 代码

输出

/tmp /vL tk MpH  Gzo.o
the code has been caught in the derived exception

Java 代码

输出

/tmp /vL tk MpH  Gzo.o
./Main.java:13: error: exception Derived has already been caught
		catch (Derived d) {
		^
1 error

Java 代码

输出

Main.java:12: error: exception Derived has already been caught
    catch(derived_d)  { System.out.println("the code has been caught in the derived exception");}