1

我正在学习使用java,我想我已经知道了C++的基础知识。但是,当我刚开始学习 java 时,我注意到“hello world”程序的第一部分在启动主类中的主函数时使用了“抛出异常”。为什么使用它?我们在 C++ 中做类似的事情吗?在 c++ 中的 int 类型主函数中返回 0 是否类似?

4

2 回答 2

2

在 Java 中,指定一个方法throws SomeException意味着任何调用该方法的方法都必须捕获或自己抛出该异常。在 main 函数的情况下,它只是意味着您不必捕获任何可能直接在 main 方法中发生的异常,而是将它们传递给底层运行时,从而导致堆栈跟踪打印和程序退出.

于 2013-10-21T13:30:44.540 回答
1

它不是,或者至少,我从来没有main在 Java 中看到过这样做。我什至不确定这是否合法。(考虑到 Java 使用异常的方式,它不应该是。只有RuntimeException并且 Error应该传播到main.)

Java 倾向于过度使用异常;特别是,它在返回值更合适的情况下使用异常(例如,无法打开文件之类的事情)。在正确的程序中,必须处理这些异常(就像在正确的程序中,C++ 返回错误代码,或者在输入和输出的情况下,必须处理流状态)。Java 使用异常说明符来声明这些异常(而且只有这些——没有必要声明在 C++ 中会成为异常的事物)。

于 2013-10-21T13:55:12.603 回答