2015-12-03 109 views
2

我一直在研究Java的ParseException,試圖寫我自己的方法,從一個String解析到int,並有兩個問題時:Java的ParseException的

  1. 我什麼時候扔呢? Java的Integer.parseInt(String string)在給出無效輸入時會拋出NumberFormatException(對於它是IllegalArgumentException的子類有意義),並且根本不拋出ParseException
  2. 什麼是「errorOffset」? ParseException的構造函數迫使你給它一個值 - 這是什麼意思?
+0

對於第二個問題,'getErrorOffset'方法告訴你它是幹什麼用的。這是「發現錯誤的位置。」 – resueman

+0

這是什麼意思?錯誤發現在字符串中的位置?或者方法?是由String中的某個錯誤(例如字母)引起的ParseException? –

+0

我將它解釋爲'String'中的位置。告訴方法中的一個位置對大多數調用者來說不是非常有用的信息,因爲執行的細節應該不重要。 – resueman

回答

0

針對parseXYZ()方法(實際上解析某個東西)拋出ParseException是完全有效的。 Integer.parseInt會拋出NumberFormatException,因爲它是RuntimeException的子類型,因此不會強制您用try-catch(對於ParseException不是這樣)包圍它。

offset字段用於標識發生錯誤的位置。有了這些信息,您可以使用已經解析的任何部分數據。