NullPointerException 가 java.awt.Graphics.drawString()로 throw 된다 - xrath.com 에서 번역됨

> ## `NullPointerException` 가 `java.awt.Graphics.drawString()` 로 throw 된다

> ###
> 증상

> > 애플릿을 Sun JRE 를 사용한 브라우저로 실행하고 있는 경우,`NullPointerException` 가 `java.awt.Graphics.drawString()` 메소드로 throw 됩니다. 같은 애플릿이 Microsoft VM 에서는 실행할 수 있습니다.

> ### 원인

> > 이 예외는, Sun JRE 로 null 캐릭터 라인이 `Graphics.drawString()` 메소드에게 건네지기 위해서(때문에) 일어납니다.

> > Sun JRE 의 Java 클래스 라이브러리는 시간의 경과와 함께 변화해 왔습니다. 상세하게 된 API 도 있으면, 폐지된 API 도 있습니다. 또, 구현이 변경된 API 도 있습니다.

> > null 캐릭터 라인을 `Graphics.drawString()` 메소드에 건네주었을 경우의 결과는 상세하게 정의되어 있지 않기 때문에, Microsoft VM 에서는 null 를 빈 상태(empty)의 캐릭터 라인으로서 취급합니다. 그러나, Sun JRE 의 구현에서는 null 를 유효한 캐릭터 라인으로서 허용 하지 않기 때문에,`NullPointerException` 가 throw 됩니다.

> ### 해결 방법

> > null 이외의 캐릭터 라인만이 `drawString()` 메소드에게 건네지도록(듯이) 대책을 강의(강구)한 코드를 기술합니다. 다음에 예를 나타냅니다.

> > > `Graphics g = getGraphics();
> > > g.drawString(s, 100, 100);`

> > 이 코드를 다음과 같이 변경합니다.

> > > `Graphics g = getGraphics();
> > > if (s ! == null) {`
> > > `g.drawString(s, 100, 100);
> > > }`

### 상세 정보

없음