2013-10-21 183 views
1

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

+0

阅读关于[** exceptions **]的教程(http://docs.oracle.com/javase/tutorial/essential/exceptions/)。 – Maroun

+0

由于C++异常被破坏?在C++中从main返回与在C中一样,它设置程序的返回值并退出。 – Dan

+0

如果返回之前发生异常,该怎么办? :) –

回答

2

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

1

这是不是,或者至少,我从来没有见过在Java中main 做到了这一点。我甚至不确定它是否合法。 (给定的Java 使用了异常的方式,它不应该是只有RuntimeExceptionError应该向外传播的main。)

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

+0

我见过数百人,当然这是合法的。测试程序比比皆是。 – EJP