回覆列表
  • 1 # 手機使用者86179176165

    有很明顯的區別。

    首先,是使用的位置,throws 只能跟在方法名和括號的後面,而 throw 只能出現在方法體內。

    其次,throws 是一個宣告(它宣告這裡可能出現異常,但未必一定出現),而 throw 是一個動作(它丟擲也可以說它產生一個異常出現,只要執行到了這個關鍵字,異常必定出現)。

    你可能 throws 用的比較熟悉,throw 還不太知道怎麼用。

    我再說具體一點的。

    當你使用 throw 丟擲(產生)一個異常的時候,如果方法用 throws 拋棄(拋開,這裡不理了)異常,那麼這個異常將被拋到了呼叫這個方法的地方去。

    如果這個方法沒有用 throws 拋棄異常,那麼就需要使用 try...catch 來捕捉異常了。

    相信你能明白這裡所謂的“產生”跟“拋棄”的區別了。

    產生,就是異常出現的地方。

    拋棄,就是讓異常透過這裡去到別的地方,是異常經過的地方。

    如果你還不明白 throw 具體有什麼用,我再舉一個簡單的例子。

    例如你做一個程式,需要輸入月份的,如果輸入了 13 ,那就是無效資料,那這時候你有兩種處理方式,第一種就是使用判斷語句判斷,然後提示;第二種就是丟擲一個異常,讓上層呼叫的方法去處理這個輸入錯誤。

    如果你不明白這種做法的好處,那沒關係,以後程式做多了你就會發現的,現在至起碼你知道了它有這種用法。

  • 中秋節和大豐收的關聯?
  • 屬相婚配表:屬雞的和什麼屬相最相配?