Java';解析异常

Java';解析异常,java,parsing,parseexception,Java,Parsing,Parseexception,我一直在研究Java,当我试图编写自己的方法,将字符串解析为int时,我有两个问题: 我应该什么时候扔?Java的Integer.parseInt(String String)在给出无效输入时抛出NumberFormatException(因为它是IllegalArgumentException的子类,所以有意义),并且根本不抛出ParseException 什么是“errorOffset”ParseException的构造函数强制您给它一个值-这是什么意思 为parseXYZ()方法(实际解析

我一直在研究Java,当我试图编写自己的方法,将
字符串
解析为
int
时,我有两个问题:

  • 我应该什么时候扔?Java的
    Integer.parseInt(String String)
    在给出无效输入时抛出
    NumberFormatException
    (因为它是
    IllegalArgumentException
    的子类,所以有意义),并且根本不抛出
    ParseException
  • 什么是“
    errorOffset
    ParseException
    的构造函数强制您给它一个值-这是什么意思

  • parseXYZ()
    方法(实际解析某些内容)抛出
    ParseException
    是完全有效的
    Integer.parseInt
    抛出一个
    NumberFormatException
    ,因为它是
    RuntimeException
    的子类型,因此不会强制您使用try-catch来包围它(对于
    ParseException
    ,情况并非如此)


    offset
    字段用于识别发生错误的位置。有了这些信息,您就可以使用已经解析的任何部分数据。

    对于第二个问题,
    getErrorOffset
    方法告诉您它的用途。这是“发现错误的位置”。这是什么意思?在字符串中找到错误的位置?还是方法?ParseException是由字符串中的某个错误(如字母)引起的吗?我将其解释为
    字符串中的位置。告诉方法中的位置对大多数调用方来说都不是很有用的信息,因为实现的细节应该无关紧要。解析
    “987A65”
    将显示索引
    3
    处的错误偏移量。这是真的,谢谢。那么,这是否回答了第一个问题<当字符串中出现问题时,是否应引发code>ParseException
    ?那么抛出
    ParseException
    NumberFormatException
    是否更可取?