Day10 - jeremy0405/Codesquad_CS GitHub Wiki
์ฌ์ฉ์ ์์ธ ์ฒ๋ฆฌ
๊ทธ๋ฃน ๋ฆฌ๋ทฐ ์๊ฐ์ ๋ด ์ฝ๋์ ๋ํด ์กฐ์๋ถ๋ค์ด ์กฐ์ธ์ ์ฃผ์
จ๋ค. ์
๋ ฅ ๊ฒ์ฆ์ ํ ๋ ๊ทธ๋ฅ ํฌ๊ฒ throw new Exception("์์ธ๋ช
")
์ผ๋ก ์์ธ๋ฅผ ๋์ง๊ณ ์์๋๋ฐ ์กฐ๊ธ ๋ ์์ ์์ธ๋ก ๋์ง๊ฑฐ๋ ์ฌ์ฉ์ ์์ธ๋ฅผ ํตํด์ ์ฒ๋ฆฌ๋ฅผ ํ๋ฉด ์ด๋ป๊ฒ ๋๋ ํผ๋๋ฐฑ์ ๋ฐ์๋ค. ์์ธ์ ์ข
๋ฅ ๋ํด์ ์ ์์ง ๋ชปํ๊ณ ์์ด์ ์์ธ ์ข
๋ฅ์ ๋ํด์ ์ ๋ฆฌ๋ฅผ ํด๋ณด๊ณ ์ฌ์ฉ์ ์์ธ ์ฒ๋ฆฌ ํ ๊ฒ์ ์ ๋ฆฌํด๋ณด๋ ค๊ณ ํ๋ค.
IllegalArgumentException
- ๋ฉ์๋์ ์ ๋ฌ์ธ์ ๊ฐ์ด ๋ถ์ ์ ํ ๋ ๋ฐ์ํ๋ ์์ธ
IllegalStateException
- ๊ฐ์ฒด์ ์ํ๊ฐ ๋ฉ์๋ ํธ์ถ์ ๋ถ์ ํฉํ ๊ฒฝ์ฐ ๋ฐ์ํ๋ ์์ธ
ArithmeticException
- ์ฐ์ ์ ์ธ ์ฐ์ฐ์ ์ค๋ฅ๊ฐ ์์ ๋ ๋ฐ์ํ๋ ์์ธ
์ปค์คํ ์์ธ ์ฒ๋ฆฌ
Sally ๊ฐ ํด์ฃผ์ ๋ง์์ผ๋ก ์ปค์คํ ์์ธ ์ฒ๋ฆฌ๋ฅผ ํ๊ธฐ ์ ์ RuntimeException์ ์์ํ BaseException์ ๊ตฌํํ ํ์ BaseException์ ์์๋ฐ์ ์ปค์คํ ์์ธ๋ฅผ ๊ตฌํํ๋ฉด ๋ณํ์ ์์ ๋กญ๊ฒ ์ปค์คํ ์์ธ๋ฅผ ์ฒ๋ฆฌํ ์ ์๋ค๊ณ ํ๋ค. ์ค๊ฐ์ ์ธต์ ํ๋ ๋ฌ์ ์ฝ๋์ ์ ์ง๋ณด์์ฑ์ ๋์ผ ์ ์๋ ๊ฒ ๊ฐ๋ค.
์ปค์คํ ์์ธ ์ฒ๋ฆฌ ์ ์ค์ํ ๊ณ ๋ ค ์ฌํญ
- ํญ์ ํํ์ ์ ๊ณตํด์ผ ํ๋ค.
- ์ปค์คํ ์์ธ์ ์๋๋ ์๋ฐ ํ์ค ์์ธ๋ค๋ณด๋ค ๋ ์์ธํ๊ฒ ํํํ๊ธฐ ์ํ ๊ฒ์ด๋ค. ์ด๋ฌํ ๊ฒ์ด ์์ด ์ปค์คํ ์์ธ๋ฅผ ๋ง๋ค ํ์๋ ์๋ค.
- ๋ค์ด๋ฐ ์ปจ๋ฒค์
์ ์ง์ผ์ผ ํ๋ค.
- Exception์ผ๋ก ๋๋๋๋ก ์์ธ๋ช ์ ์ง์ด์ผ ํ๊ณ ์์ธ์ ๋ํ ๋ ์์ธํ ์ ๋ณด๋ฅผ ์ค ์ ์๋ ์์ธ๋ช ์ ๊ณ ๋ฏผํด์ ์ง์ด์ผ ํ๋ค.
public class BaseException extends RuntimeException {
public BaseException(String title) {
super(title);
}
}
public class InputRangeException extends BaseException {
public InputRangeException(String title) {
super(title);
}
}