programing

Double.parseDouble(null)과 Integer.parseInt(null)가 다른 예외를 발생시키는 이유는 무엇입니까?

sourcetip 2023. 1. 10. 21:40
반응형

Double.parseDouble(null)과 Integer.parseInt(null)가 다른 예외를 발생시키는 이유는 무엇입니까?

Double.parseDouble(null)과 Integer.parseInt(null)가 다른 예외를 발생시키는 이유는 무엇입니까?

이것은 과거의 사고입니까, 아니면 고의입니까?문서에는 에 대한 예외와 에 대한 예외의 두 가지 유형이 명시되어 있지만 일관성이 없는 것 같습니다.

Integer.parseInt(null); // throws java.lang.NumberFormatException: null

하지만

Double.parseDouble(null); // throws java.lang.NullPointerException

null에 대해 동일한 예외가 발생할 것으로 예상하는 것은 타당하지만 이러한 api는 매우 오래되어 이 시점에서는 변경할 수 없을 수 있습니다.

그리고:

예외 동작은 오래되고 JavaDoc에 지정되어 있기 때문에 현재 두 메서드의 동작을 변경하는 것은 비현실적입니다.닫으면 해결되지 않습니다.

다음 내용:버그 리포트: Integer.parseInt()와 Double.parseDouble()은 null에 대해 다른 예외를 슬로우합니다.

다른 사람들이 말한 것처럼:아마 다른 작가들이 만들었을 거예요.

주의: 이 게시물의 모든 내용은 Java7-b147 소스입니다.

Double.parseDouble()는 Sun 라이브러리에 들어갑니다( ).첫 번째로 중요한 것은 다음과 같습니다.

in = in.trim(); // don't fool around with white space.
                // throws NullPointerException if null

Integer.parseInt()수업 중에 수동으로 이루어집니다.첫 번째로 중요한 것은 다음과 같습니다.

if (s == null) {
    throw new NumberFormatException("null");
}

나는 두 명의 다른 작가가 있다고 생각한다.

언급URL : https://stackoverflow.com/questions/16324831/why-do-double-parsedoublenull-and-integer-parseintnull-throw-different-excep

반응형