2013-10-21 148 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