Java

9์ฃผ์ฐจ ๊ณผ์ œ: ์˜ˆ์™ธ ์ฒ˜๋ฆฌ(ํ”ผ๋“œ๋ฐฑ)

2021. 1. 17. 00:55

 

๐Ÿ“Œ ์ฑ… ์ถ”์ฒœ

๋ฆฌํŒฉํ† ๋ง(๋งˆํ‹ด ํŒŒ์šธ๋Ÿฌ)

2ํŒ์€ javascript๋กœ ๋˜์–ด์žˆ๋‹ค.

 

๐Ÿ“Œ try-catch์—์„œ catch๋ฅผ ์—ฌ๋Ÿฌ ์ค„ ์“ธ ๋•Œ ์ฃผ์˜ํ•ด์•ผ ํ•  ์‚ฌํ•ญ

์ˆœ์„œ๊ฐ€ ์ค‘์š”ํ•˜๋‹ค! (๊ณ„์ธต ๊ด€๊ณ„)

์ปดํŒŒ์ผ ์—๋Ÿฌ ๋ฐœ์ƒ - ์ˆœ์„œ๋ฅผ ๋ฐ”๊ฟ”์•ผ ํ•จ

 

IllegalArgumentException์€ RuntimeException์„ ์ƒ์†๋ฐ›๊ณ  ์žˆ๋‹ค.

๋”ฐ๋ผ์„œ ์œ„ ์ฝ”๋“œ์—์„œ IllegalArgumentException์— ๋„๋‹ฌํ•  ์ˆ˜์—†๋‹ค.

 

๋ฉ€ํ‹ฐ ์บ์น˜์—์„œ๋„ ์ปดํŒŒ์ผ ์—๋Ÿฌ ๋ฐœ์ƒ -> 9์ฃผ ์ฐจ ์Šคํ„ฐ๋””์— ์ ์–ด๋†“์•˜๋‹ค.

 

โœ Quiz) ์•„๋ž˜ ์ฝ”๋“œ์—์„œ ๋ฐœ์ƒํ•˜๋Š” ์˜ˆ์™ธ๋Š”?

1. NullPointerException โœ… - ์–ด๋–ป๊ฒŒ ๋˜์ง€๋А๋ƒ ์— ๋”ฐ๋ผ ๋‹ค๋ฅด๋‹ค

2. IllegalArgumentException

3. ๋‘˜ ๋‹ค ์•„๋‹ˆ๋‹ค.

public class Example {
    public static void main(String[] args) {
        try {
          throw new NullPointerException();
        } catch (NullPointerException | IllegalArgumentException e) {
            e.printStackTrace();
        }
    }
}

 

CheckedException vs UnCheckedException

๋Ÿฐํƒ€์ž„ ๊ณ„์—ด์€ ๋ณต๊ตฌ๊ฐ€ ๋ถˆ๊ฐ€๋Šฅํ•œ ๊ฒฝ์šฐ, ์ฝ”๋“œ๋กœ ํ•  ์ˆ˜ ์—†๋Š” ๊ฒฝ์šฐ UnCheckedException

์šฐ๋ฆฌ๊ฐ€ ์ฝ”๋“œ๋กœ ์ปจํŠธ๋กค ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒฝ์šฐ(์žฌ์‹œ๋„, ์ƒˆ๋กœ์šด ๊ฐ’์œผ๋กœ ์น˜ํ™˜ ๋“ฑ๋“ฑ)๊ฐ€ ๊ฐ€๋Šฅํ•˜๋ฉด CheckedException

 

์ž๋ฐ” 8 ์ด์ƒ ๋ ˆ๊ฑฐ์‹œ ์ฝ”๋“œ์—์„œ try-catch-finally๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋‹ค๋ฉด try-with-resource๋กœ ์ „ํ™˜ํ•˜๋„๋ก ํ•˜์ž(๋ฌผ๋ก  AutoCloseable๋ฅผ ๊ตฌํ˜„ํ•˜๊ณ  ์žˆ๋Š” ํด๋ž˜์Šค)

 

๋กฌ๋ณต์—์„œ @cleanup์ด๋ผ๋Š” ์–ด๋…ธํ…Œ์ด์…˜๋„ ์žˆ๋‹ค.

 

โœ Quiz) ์•„๋ž˜ ์ฝ”๋“œ์˜ ๋ฌธ์ œ์ ์€??? ( src๋ฅผ dest์— ๋ณต์‚ฌํ•˜๋Š” ์ฝ”๋“œ)

 

๋ฌธ์ œ์  : finally ๋ธ”๋Ÿญ ์•ˆ์—in.close();์—์„œ ์˜ˆ์™ธ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์–ด์„œ out.close()์— ๋„๋‹ฌํ•˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ์–ด out์ด ๋‹ซํžˆ์ง€ ์•Š์„ ์ˆ˜ ์žˆ๋‹ค.

๊ฐœ์„  1) try๋ธ”๋ก์—์„œ in.close()์˜ ์˜ˆ์™ธ ์ค‘ IOException์ด ์•„๋‹Œ RuntimeException์ด ๋ฐœ์ƒํ•˜๋ฉด ๋˜ ๋‘ ๋ฒˆ์งธ try๋ธ”๋ก์˜ out.close()์— ๋„๋‹ฌํ•˜์ง€ ๋ชปํ•  ์ˆ˜ ๋„ ์žˆ๋‹ค.

๋ฐฑ๊ธฐ์„ ๋‹˜ ์œ ํˆฌ๋ธŒ ๊ฐ•์˜ ํ™”๋ฉด1

 

๊ฐœ์„  2 ) ์•„๋ž˜์™€ ๊ฐ™์ด ๊ฐœ์„  ํ›„ out๊นŒ์ง€ close๊ฐ€ ๊ฐ€๋Šฅํ•˜๋‹ค,, ํ•˜์ง€๋งŒ ์ฝ”๋“œ๊ฐ€ ๋„ˆ๋ฌด ์ง€์ €๋ถ„...

๋ฐฑ๊ธฐ์„ ๋‹˜ ์œ ํˆฌ๋ธŒ ๊ฐ•์˜ ํ™”๋ฉด2

 

๊ฐœ์„  3) try-with-resources๋กœ ๊น”๋”ํ•˜๊ฒŒ ๊ฐœ์„  ๊ฐ€๋Šฅ

try-with-resources๋ฅผ ์“ด๋‹ค๊ณ  catch๋ธ”๋ก์„ ์•ˆ ์จ๋„ ๋˜๋Š” ๊ฑด ์•„๋‹ˆ๋‹ค. 

ํ•˜์ง€๋งŒ finally์—์„œ close ํ•˜๋Š” ์ฝ”๋“œ๋Š” ์•ˆ ์จ๋„ ๋œ๋‹ค.

๋ฐฑ๊ธฐ์„ ๋‹˜ ์œ ํˆฌ๋ธŒ ๊ฐ•์˜ ํ™”๋ฉด3

 

try-with-resource์™€ finally๋Š” ๊ฒฐํ•ฉ์ด ๋ ๊นŒ?

์ž์›์„ ๋ฐ˜๋‚ฉ ํ›„ finally๊ฐ€ ์‹คํ–‰๋œ๋‹ค. 

์ปดํŒŒ์ผ ๋œ .class๋ฅผ ํ™•์ธํ•ด๋ณด๋ฉด ๋งˆ์ง€๋ง‰์— close ํ•ด์ฃผ๋Š” ๋ถ€๋ถ„์ด ์žˆ๋‹ค.

 

CheckedException๊ณผ UncheckedException ๋น„๊ตํ‘œ์—์„œ

ํŠธ๋žœ์žญ์…˜ ์ฒ˜๋ฆฌ rollback๊ด€๋ จ ์–˜๊ธฐ๋Š” JDBC,์Šคํ”„๋ง ์ „๋žต๊ณผ ๊ด€๋ จ ์žˆ๋‹ค. (๋œจ๋”ํ•˜๊ณ  ๋ฐ”๋กœ ํ–‰ ์‚ญ์ œํ–ˆ๋‹ค.)

์Šคํ”„๋ง์—์„œ rollback์„ ํ•  ๊ฑด์ง€ ๋ง ๊ฑด์ง€์— ๋Œ€ํ•œ ๊ธฐ๋ณธ ์„ค์ •๊ณผ ๊ด€๋ จ ์žˆ๋‹ค.

 

์ปค์Šคํ…€ ์˜ˆ์™ธ๋ฅผ ๋งŒ๋“œ๋Š” ์ „๋žต

  • ์ปค์Šคํ…€ ์˜ˆ์™ธ๋ฅผ ์•ˆ ๋งŒ๋“ค๊ณ  ๊ธฐ์กด์— ์žˆ๋Š” ๊ฒƒ์„ ์ž˜ ํ™œ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ตœ๊ณ  ์ข‹์€ ์„ ํƒ์ด๋‹ค.
  • ๋ฃจํŠธ cause๋ฅผ ๋ฐ˜๋“œ์‹œ ๋‹ด์•„์„œ ์ปค์Šคํ…€ ์˜ˆ์™ธ๋ฅผ ๋งŒ๋“ค์ž (๊ทผ๋ณธ์ ์ธ ์›์ธ๊ณผ ํ•จ๊ป˜ ๋งŒ๋“ค์–ด์•ผ ๋œ๋‹ค)

 

์˜ˆ์™ธ์ฒ˜๋ฆฌ ๋น„์šฉ

์˜ˆ์™ธ์ฒ˜๋ฆฌ๋Š” ๋น„์šฉ์ด ๋น„์‹ธ๋‹ค.

๋กœ์ง์œผ๋กœ ์˜ˆ์™ธ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ์œผ๋ฉด ์˜ˆ์™ธ๋ฅผ ๋˜์ง€๋Š” ์ž‘์—…์€ ์ž์ œํ•˜๋Š” ๊ฒƒ์ด ์ข‹๋‹ค.

 

๐Ÿ’ก finally์—์„œ return์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์€ ์•ˆํ‹ฐ ํŒจํ„ด์ด๋‹ค.

finally์— return์ด ์žˆ์œผ๋ฉด try์— ์žˆ๋Š” return์ด ์‹คํ–‰๋˜์ง€ ์•Š๋Š”๋‹ค.

 

โœ Q) ๊ณ„์† throws๋ฅผ ํ•˜๋ฉด main๊นŒ์ง€์™€์„œ ๊ฒฐ๊ตญ ๋งˆ์ง€๋ง‰์—” ์–ด๋–ป๊ฒŒ ์ฒ˜๋ฆฌ๋˜๋‚˜์š”?

๊ทธ๋ƒฅ ํ•ด๋‹น ์Šค๋ ˆ๋“œ๊ฐ€ ์ข…๋ฃŒ๋œ๋‹ค๊ณ  ์ƒ๊ฐํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.

 

๊ณผ์ œ ์•ˆ๋‚ด

callable : ์•ˆํ•ด๋„ ๋œ๋‹ค....

fork join poll : ์•„์ง ์•ˆํ•ด๋„ ๋œ๋‹ค.....

Thread์™€ Runnable์— ๋ฌด์Šจ ๋ฉ”์†Œ๋“œ๊ฐ€ ์žˆ๋Š”์ง€ 

Thread์˜ ์ƒํƒœ ๊ณต๋ถ€

Thread ์šฐ์„ ์ˆœ์œ„ ๊ณต๋ถ€

Main Thread๊ฐ€ ๋ญ”์ง€

๋™๊ธฐํ™”๋ฅผ ์–ด๋–ป๊ฒŒ ์ฒ˜๋ฆฌํ•˜๋Š”์ง€ : Lock๊ฐœ๋…, Lock ์ข…๋ฅ˜

'Java' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

์Šคํ„ฐ๋”” ํ• ๋ž˜ 10์ฃผ์ฐจ ๊ณผ์ œ: ๋ฉ€ํ‹ฐ์“ฐ๋ ˆ๋“œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ  (0) 2021.01.28
8์ฃผ์ž ๊ณผ์ œ: ์ธํ„ฐํŽ˜์ด์Šค(ํ”ผ๋“œ๋ฐฑ)  (0) 2021.01.28
์Šคํ„ฐ๋”” ํ• ๋ž˜ 9์ฃผ์ฐจ ๊ณผ์ œ: ์˜ˆ์™ธ ์ฒ˜๋ฆฌ  (0) 2021.01.16
8์ฃผ์ž ๊ณผ์ œ: ์ธํ„ฐํŽ˜์ด์Šค  (0) 2021.01.09
7์ฃผ์ฐจ ๊ณผ์ œ: ํŒจํ‚ค์ง€ (ํ”ผ๋“œ๋ฐฑ, feedback)  (0) 2021.01.02
'Java' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
  • ์Šคํ„ฐ๋”” ํ• ๋ž˜ 10์ฃผ์ฐจ ๊ณผ์ œ: ๋ฉ€ํ‹ฐ์“ฐ๋ ˆ๋“œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ
  • 8์ฃผ์ž ๊ณผ์ œ: ์ธํ„ฐํŽ˜์ด์Šค(ํ”ผ๋“œ๋ฐฑ)
  • ์Šคํ„ฐ๋”” ํ• ๋ž˜ 9์ฃผ์ฐจ ๊ณผ์ œ: ์˜ˆ์™ธ ์ฒ˜๋ฆฌ
  • 8์ฃผ์ž ๊ณผ์ œ: ์ธํ„ฐํŽ˜์ด์Šค
ํ–ฅ์ฐก
ํ–ฅ์ฐก
๋ฐฑ์—”๋“œ ๊ฐœ๋ฐœ์ž
ํ–ฅ์ฐก
Dev Story
ํ–ฅ์ฐก
์ „์ฒด
์˜ค๋Š˜
์–ด์ œ
  • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (97)
    • Java (42)
      • design pattern (7)
      • JavaCafe Study (4)
    • Kotlin (2)
    • Spring (4)
    • TypeScript (1)
    • DevOps (2)
      • AWS (1)
    • DB (4)
      • Real Mysql (2)
      • Redis (1)
    • OS (3)
      • Linux (3)
    • Algorithm (7)
    • Clean Code (1)
    • Git (5)
    • ํ™˜๊ฒฝ ์„ค์ • (2)
    • ๊ทธ๋ƒฅ ์ƒ๊ฐ (1)
    • ์„œํ‰ (12)
      • ํ•œ๋น›๋ฏธ๋””์–ด, ๋‚˜๋Š”๋ฆฌ๋ทฐ์–ด๋‹ค 2022 (4)
    • ์„ธ๋ฏธ๋‚˜ (11)
    • ๊ธฐํƒ€ (0)

๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

  • ํ™ˆ

๊ณต์ง€์‚ฌํ•ญ

์ธ๊ธฐ ๊ธ€

ํƒœ๊ทธ

  • Kotlin
  • fastcampus
  • ์œ ์Šค์ฝ˜
  • ์Šคํ„ฐ๋””ํ• ๋ž˜
  • git #github #doit #ํ˜•์ƒ๊ด€๋ฆฌ
  • ์ฝ”๋”ฉ์ž๊ฒฉ์ฆ
  • ๋ฐฑ์ค€
  • ๊นƒ #๊นƒํ—ˆ๋ธŒ
  • ์ฝ”๋”ฉํ…Œ์ŠคํŠธ
  • ์Šคํ„ฐ๋””
  • ๋ฐฑ๊ธฐ์„ 
  • Real MySQL
  • ์ œ์ดํŽ
  • OKKY
  • ํŒจ์ŠคํŠธ์บ ํผ์Šค
  • ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ
  • java
  • ์Šคํ„ฐ๋””์˜ฌ๋ž˜
  • ํ•œ๋น›๋ฏธ๋””์–ด
  • ํŒŒ์ด์ฌ
  • ์ธํ”„๋Ÿฐ
  • ์•Œ๊ณ ๋ฆฌ์ฆ˜
  • LeetCode
  • ์ž๋ฐ”์Šคํ„ฐ๋””
  • ํŒจ์บ 
  • ์ฝ”๋”ฉ๊ต์œก
  • ์ž๋ฐ”์นดํŽ˜
  • ์ž๋ฐ”
  • ํŒจ์ŠคํŠธ์บ ํผ์Šคํ›„๊ธฐ
  • java #study

์ตœ๊ทผ ๋Œ“๊ธ€

์ตœ๊ทผ ๊ธ€

hELLO ยท Designed By ์ •์ƒ์šฐ.
ํ–ฅ์ฐก
9์ฃผ์ฐจ ๊ณผ์ œ: ์˜ˆ์™ธ ์ฒ˜๋ฆฌ(ํ”ผ๋“œ๋ฐฑ)
์ƒ๋‹จ์œผ๋กœ

ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”

๊ฐœ์ธ์ •๋ณด

  • ํ‹ฐ์Šคํ† ๋ฆฌ ํ™ˆ
  • ํฌ๋Ÿผ
  • ๋กœ๊ทธ์ธ

๋‹จ์ถ•ํ‚ค

๋‚ด ๋ธ”๋กœ๊ทธ

๋‚ด ๋ธ”๋กœ๊ทธ - ๊ด€๋ฆฌ์ž ํ™ˆ ์ „ํ™˜
Q
Q
์ƒˆ ๊ธ€ ์“ฐ๊ธฐ
W
W

๋ธ”๋กœ๊ทธ ๊ฒŒ์‹œ๊ธ€

๊ธ€ ์ˆ˜์ • (๊ถŒํ•œ ์žˆ๋Š” ๊ฒฝ์šฐ)
E
E
๋Œ“๊ธ€ ์˜์—ญ์œผ๋กœ ์ด๋™
C
C

๋ชจ๋“  ์˜์—ญ

์ด ํŽ˜์ด์ง€์˜ URL ๋ณต์‚ฌ
S
S
๋งจ ์œ„๋กœ ์ด๋™
T
T
ํ‹ฐ์Šคํ† ๋ฆฌ ํ™ˆ ์ด๋™
H
H
๋‹จ์ถ•ํ‚ค ์•ˆ๋‚ด
Shift + /
โ‡ง + /

* ๋‹จ์ถ•ํ‚ค๋Š” ํ•œ๊ธ€/์˜๋ฌธ ๋Œ€์†Œ๋ฌธ์ž๋กœ ์ด์šฉ ๊ฐ€๋Šฅํ•˜๋ฉฐ, ํ‹ฐ์Šคํ† ๋ฆฌ ๊ธฐ๋ณธ ๋„๋ฉ”์ธ์—์„œ๋งŒ ๋™์ž‘ํ•ฉ๋‹ˆ๋‹ค.