2015-10-20 115 views
0

我想具體問這個問題。我爲什麼要把爲什麼要在public static void main(String [] args)上拋出異常?

public static void main(String[] args) throws Exception { ... }

,而不是簡單地

public static void main(String[] args) { ... }

在程序的頂部。我總是警惕拋出一般例外。我只是想了解在主要方法上拋出異常的目的。

+0

讓它崩潰? – skypjack

+1

爲什麼*應該*你?誰說你*應該*? –

+0

如果你完全沒有看到它,它會是什麼樣子? – SacJn

回答

0

這是一個良好的開端:https://docs.oracle.com/javase/tutorial/essential/exceptions/

例外的是有沒有讓程序退出「優雅」。例如,如果你的程序有一行讀取文件,你的程序可以有FileNotFoundException這將允許它不會崩潰,而是拋出一個異常。你甚至可以輸出你自己的評論,以提供有關拋出異常的原因。

0

我可以想到從主要方法拋出Exception沒有很好的理由。這似乎是一種代碼味道,以避免在整個程序中處理檢查的異常。

2

這裏是故障。

public static void main(String[] args) throws Exception { ... } 

所有這一切都是文檔,該方法可能會引發此異常,並且您明確指出您沒有捕獲此異常。所以它告訴其他人將使用這種方法,他們需要將這個調用封裝在自己的try/catch中,否則就處理它。

因此,在您的情況下,指出您的主要方法拋出任何東西是沒有意義的,因爲這是應用程序的起點,而且如果存在異常,那麼您的應用程序將無法運行。

0

它將檢查到的異常委託給JVM,它將在其默認異常處理程序中捕獲異常。然後默認的異常處理程序將打印異常的堆棧跟蹤並終止主線程。

相關問題