[TIL] Today I Learned - 221123
2022. 11. 23. 22:08ㆍ기록/TIL
[TIL] Today I Learned - 221123
221123 기록
Java throw exception
private Memo getMemo(int memoNumber) {
for (Memo memo : this.memoList) {
if (memoNumber == memo.getNumber()) {
return memo;
}
}
throw new RuntimeException("MemoList data 타입 확인필요");
}
이전까진 RuntimeException같은 항목을 왜 사용하는지 잘 몰랐었다. 오류가 생기면 ide에서 해당 항목에서 어느 부분에 오류가 생겼는지 알려주는데 필요가 있나 싶었던 것이었다. 다만 오늘 사용하던 메서드들 위와 같이 변경을 하면서 튜터님께서 'throw new 오류'로 사용하는 것을 보면서 알 수 있었다.
위의 for문을 돌면서 만약 메서드가 return되지 않으면 해당 오류를 반환하기로 하는데 해당 항목을 작성한 후 오류가 발생한 콘솔 창이다. 콘솔창을 보면 해당 오류가 왜 생겼는지 좀 더 직관적으로 알 수 있었다. 이런 점에서 오류가 발생한 부분이 왜 생기는지 혹은 어떤 항목에서 오류가 생기는지 알 수 있었기에 해당 과정처럼 오류를 정리하는 법을 알았다.
오류의 경우 자바에서 발생할만한 오류를 종합해놨기에 오류가 발생할만한 지점에 발생할 만한 오류를 지정해주는 것이 포인트란 것을 알았다.
public Memo validation(int memoNumber) {
if (0 <= memoNumber && memoNumber <= this.memoList.size()) {
return getMemo(memoNumber);
}
throw new IllegalArgumentException();
}
private Memo getMemo(int memoNumber) {
for (Memo memo : this.memoList) {
if (memoNumber == memo.getNumber()) {
return memo;
}
}
throw new RuntimeException("MemoList data 타입 확인필요");
}
기존의 경우 해당 메서드 두개가 합쳐져있었다. 그러나 튜터님께 여쭤보면서 튜터님은 하나의 메서드에 책임이 두개가 몰려있으니 메서드를 추출하자고 하셨고 해당부분에서 메서드를 추출하여 solid의 부분을 생각하게 되었다. 그리고 이 지점에서 하나의 책임만 가지게 한다는 것이 이런 의미란 것을 깨달았다.
'기록 > TIL' 카테고리의 다른 글
[TIL] Today I Learned - 221125 (0) | 2022.11.26 |
---|---|
[TIL] Today I Learned - 221124 (0) | 2022.11.24 |
[TIL] Today I Learned - 221122 (0) | 2022.11.22 |
[TIL] Today I Learned - 221121 (0) | 2022.11.21 |
[TIL] Today I Learned - 221118 (0) | 2022.11.18 |