Day10 - jeremy0405/Codesquad_CS GitHub Wiki

์‚ฌ์šฉ์ž ์˜ˆ์™ธ ์ฒ˜๋ฆฌ

๊ทธ๋ฃน ๋ฆฌ๋ทฐ ์‹œ๊ฐ„์— ๋‚ด ์ฝ”๋“œ์— ๋Œ€ํ•ด ์กฐ์›๋ถ„๋“ค์ด ์กฐ์–ธ์„ ์ฃผ์…จ๋‹ค. ์ž…๋ ฅ ๊ฒ€์ฆ์„ ํ•  ๋•Œ ๊ทธ๋ƒฅ ํฌ๊ฒŒ throw new Exception("์˜ˆ์™ธ๋ช…") ์œผ๋กœ ์˜ˆ์™ธ๋ฅผ ๋˜์ง€๊ณ  ์žˆ์—ˆ๋Š”๋ฐ ์กฐ๊ธˆ ๋” ์ž‘์€ ์˜ˆ์™ธ๋กœ ๋˜์ง€๊ฑฐ๋‚˜ ์‚ฌ์šฉ์ž ์˜ˆ์™ธ๋ฅผ ํ†ตํ•ด์„œ ์ฒ˜๋ฆฌ๋ฅผ ํ•˜๋ฉด ์–ด๋–ป๊ฒ ๋ƒ๋Š” ํ”ผ๋“œ๋ฐฑ์„ ๋ฐ›์•˜๋‹ค. ์˜ˆ์™ธ์˜ ์ข…๋ฅ˜ ๋Œ€ํ•ด์„œ ์ž˜ ์•Œ์ง€ ๋ชปํ•˜๊ณ  ์žˆ์–ด์„œ ์˜ˆ์™ธ ์ข…๋ฅ˜์— ๋Œ€ํ•ด์„œ ์ •๋ฆฌ๋ฅผ ํ•ด๋ณด๊ณ  ์‚ฌ์šฉ์ž ์˜ˆ์™ธ ์ฒ˜๋ฆฌ ํ•œ ๊ฒƒ์„ ์ •๋ฆฌํ•ด๋ณด๋ ค๊ณ  ํ•œ๋‹ค.

IllegalArgumentException

  • ๋ฉ”์†Œ๋“œ์˜ ์ „๋‹ฌ์ธ์ž ๊ฐ’์ด ๋ถ€์ ์ ˆํ•  ๋•Œ ๋ฐœ์ƒํ•˜๋Š” ์˜ˆ์™ธ

IllegalStateException

  • ๊ฐ์ฒด์˜ ์ƒํƒœ๊ฐ€ ๋ฉ”์†Œ๋“œ ํ˜ธ์ถœ์— ๋ถ€์ ํ•ฉํ•œ ๊ฒฝ์šฐ ๋ฐœ์ƒํ•˜๋Š” ์˜ˆ์™ธ

ArithmeticException

  • ์‚ฐ์ˆ ์ ์ธ ์—ฐ์‚ฐ์— ์˜ค๋ฅ˜๊ฐ€ ์žˆ์„ ๋•Œ ๋ฐœ์ƒํ•˜๋Š” ์˜ˆ์™ธ

์ปค์Šคํ…€ ์˜ˆ์™ธ ์ฒ˜๋ฆฌ

Sally ๊ฐ€ ํ•ด์ฃผ์‹  ๋ง์”€์œผ๋กœ ์ปค์Šคํ…€ ์˜ˆ์™ธ ์ฒ˜๋ฆฌ๋ฅผ ํ•˜๊ธฐ ์ „์— RuntimeException์„ ์ƒ์†ํ•œ BaseException์„ ๊ตฌํ˜„ํ•œ ํ›„์— BaseException์„ ์ƒ์†๋ฐ›์•„ ์ปค์Šคํ…€ ์˜ˆ์™ธ๋ฅผ ๊ตฌํ˜„ํ•˜๋ฉด ๋ณ€ํ™”์— ์ž์œ ๋กญ๊ฒŒ ์ปค์Šคํ…€ ์˜ˆ์™ธ๋ฅผ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค๊ณ  ํ•œ๋‹ค. ์ค‘๊ฐ„์— ์ธต์„ ํ•˜๋‚˜ ๋‘ฌ์„œ ์ฝ”๋“œ์˜ ์œ ์ง€๋ณด์ˆ˜์„ฑ์„ ๋†’์ผ ์ˆ˜ ์žˆ๋Š” ๊ฒƒ ๊ฐ™๋‹ค.

์ปค์Šคํ…€ ์˜ˆ์™ธ ์ฒ˜๋ฆฌ ์‹œ ์ค‘์š”ํ•œ ๊ณ ๋ ค ์‚ฌํ•ญ

  1. ํ•ญ์ƒ ํ˜œํƒ์„ ์ œ๊ณตํ•ด์•ผ ํ•œ๋‹ค.
    • ์ปค์Šคํ…€ ์˜ˆ์™ธ์˜ ์˜๋„๋Š” ์ž๋ฐ” ํ‘œ์ค€ ์˜ˆ์™ธ๋“ค๋ณด๋‹ค ๋” ์ž์„ธํ•˜๊ฒŒ ํ‘œํ˜„ํ•˜๊ธฐ ์œ„ํ•œ ๊ฒƒ์ด๋‹ค. ์ด๋Ÿฌํ•œ ๊ฒƒ์ด ์—†์ด ์ปค์Šคํ…€ ์˜ˆ์™ธ๋ฅผ ๋งŒ๋“ค ํ•„์š”๋Š” ์—†๋‹ค.
  2. ๋„ค์ด๋ฐ ์ปจ๋ฒค์…˜์„ ์ง€์ผœ์•ผ ํ•œ๋‹ค.
    • Exception์œผ๋กœ ๋๋‚˜๋„๋ก ์˜ˆ์™ธ๋ช…์„ ์ง€์–ด์•ผ ํ•˜๊ณ  ์˜ˆ์™ธ์— ๋Œ€ํ•œ ๋” ์ž์„ธํ•œ ์ •๋ณด๋ฅผ ์ค„ ์ˆ˜ ์žˆ๋Š” ์˜ˆ์™ธ๋ช…์„ ๊ณ ๋ฏผํ•ด์„œ ์ง€์–ด์•ผ ํ•œ๋‹ค.
public class BaseException extends RuntimeException {  
  
  public BaseException(String title) {  
    super(title);  
  }  
  
}
public class InputRangeException extends BaseException {  
  
  public InputRangeException(String title) {  
    super(title);  
  }  
}

์ฐธ๊ณ  ๋ธ”๋กœ๊ทธ