마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

soundKey 과 Map<String, Integer> 의 예외처리는...?

0 추천
public SoundPool sPool;
    public Map<String, Integer> sMap;

.................

int soundKey = sMap.get(key);  //key 값이 없을경우 바르지않을경우

sPool.play(soundKey, streamVolume, streamVolume, 0, 0, 1);   //soundKey 값이 없을경우  등

위코드의 예외처리는 어떻게하면되나요

위와같이 잘못되면 앱이 죽어버려서리...

값이 잘못되더라도 죽지않고 예외처리해서 넘어갈수있도록하고싶습니다

가르쳐주심감사하겠습니다
참참참 (3,100 포인트) 님이 2014년 7월 16일 질문

1개의 답변

+1 추천
맵에서 가져오는 것은 Integer 객체입니다.

int 형 변수가 아닙니다.

 

int soundKey = sMap.get(key); 여기서 문제가 될 수 있습니다.

key에 해당하는 값이 없을 경우 맵은 null을 반환합니다.

 

null은 int 변수에 할당될 수 없죠.

여기서 null체크를 하신 후 null이 아닐 경우에 int 변수에 값을 저장하시면 됩니다.

 

int soundKey = sMap.get(key);

sPool.play(soundKey, streamVolume, streamVolume, 0, 0, 1);

이게 아니라

 

Integer value = sMap.get(key);

if(value != null) {

    int soundKey = value;

    sPool.play(soundKey, streamVolume, streamVolume, 0, 0, 1);

}
원조안드로이드 (58,190 포인트) 님이 2014년 7월 17일 답변
...