πŸ“˜ [ JAVA ν”„λ‘œκ·Έλž¨ 였λ₯˜ ]

rossiebiΒ·2022λ…„ 12μ›” 11일
0

πŸ’» JAVA κ°œλ°œμΌμ§€Β 

λͺ©λ‘ 보기
37/38
post-thumbnail

⭐ ν”„λ‘œκ·Έλž¨ 였λ₯˜

  1. 컴파일 μ—λŸ¬ : 컴파일 ν•  λ•Œ λ°œμƒν•˜λŠ” μ—λŸ¬
  2. λŸ°νƒ€μž„ μ—λŸ¬ : μ‹€ν–‰ ν•  λ•Œ λ°œμƒν•˜λŠ” μ—λŸ¬
  3. 논리적 μ—λŸ¬ : μž‘μ„± μ˜λ„μ™€ λ‹€λ₯΄κ²Œ λ™μž‘

πŸ’₯ μ—λŸ¬μ™€ μ˜ˆμ™Έ

  • μ—λŸ¬ : ν”„λ‘œκ·Έλž¨ μ½”λ“œμ— μ˜ν•΄ 수슡될 수 μ—†λŠ” μ‹¬κ°ν•œ 였λ₯˜
  • μ˜ˆμ™Έ : ν”„λ‘œκ·Έλž¨ μ½”λ“œμ— μ˜ν•΄ 수슡될 수 μžˆλŠ” λ‹€μ†Œ λ―Έμ•½ν•œ 였λ₯˜

πŸ’₯ Exception & RuntimeException

  • Exception : μ‚¬μš©μžμ˜ μ‹€μˆ˜μ™€ 같은 외적인 μš”μΈμ— μ˜ν•΄ λ°œμƒν•˜λŠ” μ˜ˆμ™Έ
  • RuntimeException : ν”„λ‘œκ·Έλž˜λ¨Έμ˜ μ‹€μˆ˜λ‘œ λ°œμƒν•˜λŠ” μ˜ˆμ™Έ

πŸ’₯ μ˜ˆμ™Έμ²˜λ¦¬ν•˜κΈ°

μ •μ˜ : ν”„λ‘œκ·Έλž¨ μ‹€ν–‰μ‹œ λ°œμƒν•  수 μžˆλŠ” μ˜ˆμ™Έμ˜ λ°œμƒμ— λŒ€λΉ„ν•œ μ½”λ“œλ₯Ό μž‘μ„±ν•˜λŠ” 것
λͺ©μ  : ν”„λ‘œκ·Έλž¨μ˜ 비정상 μ’…λ₯˜λ₯Ό 막고, 정상적인 μ‹€ν–‰ μƒνƒœλ₯Ό μœ μ§€ν•˜λŠ” 것

πŸ’₯ try-catchλ¬Έ

  • μ˜ˆμ™Έλ₯Ό μ²˜λ¦¬ν•˜κΈ° μœ„ν•΄
try {

//μ˜ˆμ™Έλ°œμƒν•  κ°€λŠ₯성이 μžˆλŠ” λ¬Έμž₯ 
    
}catch(Exception1 e1) {

 //Exception1이 λ°œμƒν–ˆμ„ 경우, 이λ₯Ό μ²˜λ¦¬ν•˜μ§€ μœ„ν•œ λ¬Έμž₯ 적기

 
}catch(Exception2 e2) {

 //Exception2이 λ°œμƒν–ˆμ„ 경우, 이λ₯Ό μ²˜λ¦¬ν•˜μ§€ μœ„ν•œ λ¬Έμž₯ 적기
 
}catch(ExceptionN eN) {

 //ExceptionN이 λ°œμƒν–ˆμ„ 경우, 이λ₯Ό μ²˜λ¦¬ν•˜μ§€ μœ„ν•œ λ¬Έμž₯ 적기
 
}

μ˜ˆμ™Έκ°€ λ°œμƒν•˜μ§€ μ•Šμ•˜λ‹€λ©΄ catch λΈ”λŸ­μ„ κ±°μΉ˜μ§€ μ•Šκ³  λΉ μ Έλ‚˜κ°!

πŸ’₯ printStackTrace() & getMessage()

  • printStackTrace()
    : μ˜ˆμ™Έλ°œμƒ λ‹Ήμ‹œμ˜ ν˜ΈμΆœμŠ€νƒμ— μžˆμ—ˆλ˜ λ©”μ†Œλ“œμ˜ 정보와 μ˜ˆμ™Έ 메세지λ₯Ό 화면에 좜λ ₯
    => μ—λŸ¬μ˜ λ°œμƒκ·Όμ›μ§€λ₯Ό μ°Ύμ•„μ„œ λ‹¨κ³„λ³„λ‘œ μ—λŸ¬λ₯Ό 좜λ ₯

  • getMessage()
    : λ°œμƒν•œ μ˜ˆμ™Έν΄λž˜μŠ€μ˜ μΈμŠ€ν„΄μŠ€μ— μ €μž₯된 메세지λ₯Ό 얻을 수 있음
    => μ—λŸ¬μ˜ 원인을 κ°„λ‹¨ν•˜κ²Œ 좜λ ₯

πŸ’₯ λ©€ν‹° catch λΈ”λŸ­

  • λ‚΄μš©μ΄ 같은 catch λΈ”λŸ­μ„ ν•˜λ‚˜λ‘œ ν•©μΉœ 것(jdk 1.7λΆ€ν„°)

πŸ’₯ μ˜ˆμ™Έ λ°œμƒμ‹œν‚€κΈ°

  • throwλ₯Ό μ‚¬μš©ν•΄ 고의둜 μ˜ˆμ™Έλ₯Ό λ°œμƒμ‹œν‚¬ 수 있음
  1. μ—°μ‚°μž newλ₯Ό μ΄μš©ν•΄ λ°œμƒμ‹œν‚€λ €λŠ” μ˜ˆμ™Έ 클래슀의 객체λ₯Ό λ§Œλ“€κΈ°
    -> Exception e = new Exception("고의둜 λ°œμƒμ‹œμΌ°μŒ");

  2. ν‚€μ›Œλ“œ throwλ₯Ό μ΄μš©ν•΄ μ˜ˆμ™Έλ°œμƒ
    -> throw e;

πŸ’₯ checked μ˜ˆμ™Έ, unchecked μ˜ˆμ™Έ

  • checked μ˜ˆμ™Έ
    : μ»΄νŒŒμΌλŸ¬κ°€ μ˜ˆμ™Έμ²˜λ¦¬μ—¬λΆ€λ₯Ό 체크(μ˜ˆμ™Έ 처리 ν•„μˆ˜)
  • unchecked μ˜ˆμ™Έ
    : μ»΄νŒŒμΌλŸ¬κ°€ μ˜ˆμ™Έ 처리 μ—¬λΆ€λ₯Ό 체크 μ•ˆν•¨

πŸ’₯ λ©”μ†Œλ“œμ— μ˜ˆμ™Έ μ„ μ–Έν•˜κΈ°

  • try catch λ¬Έ 외에 μ˜ˆμ™Έλ₯Ό λ©”μ†Œλ“œμ— μ„ μ–Έν•˜λŠ” 것도 κ°€λŠ₯
  • λ©”μ†Œλ“œ 선언뢀에 throwsλ₯Ό μ‚¬μš©ν•΄ μ˜ˆμ™Έλ₯Ό 적어주면 됨
    -> throws와 throw ꡬ별해야함!!!
void method() throws Exception1, Exception2, ... ExceptionN {
// λ©”μ†Œλ“œ λ‚΄μš©
}
void method() throws Exception {
// λ©”μ†Œλ“œ λ‚΄μš©
}

-> μ˜ˆμ™Έμ˜ μ΅œκ³ μ‘°μƒ Exception 클래슀λ₯Ό λ©”μ†Œλ“œμ— μ„ μ–Έν•˜λ©΄
이 λ©”μ†Œλ“œλŠ” λͺ¨λ“  μ’…λ₯˜μ˜ μ˜ˆμ™Έκ°€ λ°œμƒν•  κ°€λŠ₯성이 μžˆλ‹€λŠ” 뜻

πŸ’₯ finally 블둝

  • μ˜ˆμ™Έ λ°œμƒ 여뢀와 관계없이 μˆ˜ν–‰λ˜μ–΄μ•Ό ν•˜λŠ” μ½”λ“œλ₯Ό μž‘μ„±
  • finally 블둝은 try-catchλ¬Έ 맨 λ§ˆμ§€λ§‰μ— μœ„μΉ˜
profile
λΉ„μ „κ³΅μž 개발자λ₯Ό κΏˆκΎΈλŠ” λ‘œμ§€

0개의 λŒ“κΈ€