Java 中的 try catch 影響效能嗎?

2021-09-09 05:09:02 字數 1272 閱讀 2460

前幾天在 code review 時發現有一段**中存在濫用try catch的現象。其實這種行為我們也許都經歷過,剛參加工作想盡量避免出現崩潰問題,因此在很多地方都想著 try catch一下。

但實際上這種習慣不僅會讓**很難看,更會影響**的執行效能。有些人會覺得,不就是乙個 try catch 麼,怎麼會影響效能啊。那就讓我們來測試看看吧。

首先,我們看看沒有try-catch情況下,進行100萬次加法的耗時:

long start = system.nanotime();

int a = 0;

for (int i = 0; i < 1000000; i++)

system.out.println(system.nanotime() - start);

經過5次統計,其平均耗時為:1816048納秒,即1.8毫秒。

接著,我們來看看在有try-catch情況下,進行100萬次加法的耗時:

long start = system.nanotime();

int a = 0;

for (int i = 0; i < 1000000; i++) catch (exception e)

} system.out.println(system.nanotime() - start);

經過5次統計,其平均耗時為:1928394納秒,即1.9毫秒。

我們再來看看,如果try-catch丟擲異常,進行100萬次加法的耗時:

long start = system.nanotime();

int a = 0;

for (int i = 0; i < 1000000; i++) catch (exception e)

} system.out.println(system.nanotime() - start);

經過5次統計,其平均耗時為:780950471納秒,即780毫秒。

經過上面三次統計,我們可以看到在沒有try catch時,耗時1.8毫秒。在有try catch 但是沒有丟擲異常,耗時1.9毫秒。在有丟擲異常,耗時780毫秒。我們能得出乙個結論:如果try catch沒有丟擲異常,那麼其對效能幾乎沒有影響。但如果丟擲異常,那對程式將造成幾百倍的效能影響。

雖然在沒有丟擲異常時,try catch幾乎沒有效能影響。但是一旦丟擲異常,那麼其對效能的影響將是巨大的。因此我們在實際程式設計的時候,需要特別注意try catch語句的使用,不在沒有必要的地方過多使用。

Java中的try catch的作用

try裡面是一些你覺得可能會出問題的 catch裡就是你覺得會有什麼問題,如果出的問題正好是你catch裡說到的問題,那麼他就會按照你設定的,比如會列印出來,比如會退出方法等等 然後接著往下執行後面該執行的 但是如果你不用try 的話,沒問題,很好,一有問題,就會在那裡停住,然後給使用者乙個很不友好...

Java中的try catch的作用

try裡面是一些你覺得可能會出問題的 catch裡就是你覺得會有什麼問題,如果出的問題正好是你catch裡說到的問題,那麼他就會按照你設定的,比如會列印出來,比如會退出方法等等 然後接著往下執行後面該執行的 但是如果你不用try 的話,沒問題,很好,一有問題,就會在那裡停住,然後給使用者乙個很不友好...

Java 中的 try catch 影響效能嗎?

前幾天在 code review 時發現有一段 中存在濫用 try catch 的現象。其實這種行為我們也許都經歷過,剛參加工作想盡量避免出現崩潰問題,因此在很多地方都想著 try catch 一下。但實際上這種習慣不僅會讓 很難看,更會影響 的執行效能。有些人會覺得,不就是乙個 try catch...