簡體   English   中英

為什么要在公共靜態void main(String [] args)上引發異常?

[英]Why should I throw an Exception on public static void main(String[] args)?

我想專門問這個問題。 我為什么要放

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

而不是簡單

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

在程序的頂部。 我總是對拋出一般異常保持警惕。 我只想了解在main方法上引發Exception的目的。

這是細分。

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

所有這一切都證明該方法可能會引發此異常,並且您清楚地表明沒有捕獲此異常。 因此,它告訴其他將要使用此方法的人,他們需要將此調用封裝在自己的try / catch中,否則將其處理。

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

這是一個不錯的起點: https : //docs.oracle.com/javase/tutorial/essential/exceptions/

允許程序“正常”退出的例外情況。 因此,例如,如果您的程序有一行讀取文件,則您的程序可以具有FileNotFoundException ,這將使其不會崩潰而是引發異常。 您甚至可以輸出自己的注釋,以提示引發異常的原因。

我認為沒有充分的理由將main方法中的Exception拋出。 為了避免在整個程序中處理檢查的異常,這似乎是一種代碼氣味。

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM