ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Java ๊ธฐ์ดˆ] 15. ์˜ˆ์™ธ
    Dev/Java 2023. 3. 26. 23:42
    728x90

    ๐Ÿ’ก์ฃผ๋ง ๊ณผ์ œ ํ”ผ๋“œ๋ฐฑ

    ๐Ÿ’ก
    - ๊ณ„์‚ฐ๊ณผ ๊ฐ™์€ ๊ธฐ๋Šฅ ๋งŒ์„ ๊ฐ€์ง„ ์œ ํ‹ธ์„ฑ์˜ ํด๋ž˜์Šค๋Š” static์œผ๋กœ ์„ ์–ธํ•˜๋Š” ๊ฒƒ์ด ์ข‹๋‹ค. ex) Arrays.sort() - ๊ทธ ์™ธ์—๋Š” static ์‚ฌ์šฉ์„ ์ง€์–‘ํ•œ๋‹ค.
    ๐Ÿ’ก
    ์ƒ์„ฑ์ž๋ฅผ private๋กœ ์„ ์–ธํ•˜๋ฉด ์ธ์Šคํ„ด์Šค ์ƒ์„ฑ์„ ๊ธˆ์ง€ํ•  ์ˆ˜ ์žˆ๋‹ค.
    ๐Ÿ’ก
    ๋ฉ”์„œ๋“œ์—์„œ Scanner๋ฅผ ์ธ์ž๋กœ ๋ฐ›๋Š” ๊ฒƒ์€ ์ข‹์ง€ ์•Š๋‹ค. (์žฌํ™œ์šฉ์„ฑ) โ†’ ์Šค์บ๋„ˆ๋กœ ์ด๋ฏธ ๋ฐ›์€ ๊ฐ’์„ ๋ฐ›๋Š” ๊ฒƒ์ด ์ข‹๋‹ค. โ€™๋‚˜โ€™ ํ‘œํ˜„ : me ๊ฐ ๊ณต์‚ฌ์žฅ๊ณผ ๊ทธ๋Š˜์˜ position์„ position ํด๋ž˜์Šค๋กœ ๋ถ„๋ฆฌํ•˜๊ณ , ๊ทธ position ํด๋ž˜์Šค์— x, y ์ขŒํ‘œ ๊ฐ’์„ ๊ฐ€์ง€๊ณ  ๊ฐ ๊ณต์‚ฌ์žฅ๊ณผ ๊ทธ๋Š˜์€ position ๊ฐ์ฒด๋ฅผ ํ•„๋“œ ์†์„ฑ์œผ๋กœ ๊ฐ€์ง€๋Š” ์„ค๊ณ„๋„ ์ข‹์„ ๋“ฏ ํ•˜๋‹ค.
    ๐Ÿ’ก
    packageํด๋ž˜์Šค์˜ ๊ฐ ๊ธฐ๋Šฅ๋ณ„, ๊ฐ์ฒด ๋“ฑ์œผ๋กœ ๋‚˜๋ˆ„์–ด ์ €์žฅํ•˜๋ฉด ์ข‹๋‹ค.

    ๐Ÿ“˜ 15์žฅ ์˜ˆ์™ธ (Exception)

    ๐Ÿ’ก
    ํ”„๋กœ๊ทธ๋žจ ์„ค๊ณ„ ์‹œ, ์˜ˆ์™ธ ๋ฐœ์ƒ ํ•  ๊ฐ€๋Šฅ์„ฑ์„ ์˜ˆ์ธกํ•˜์—ฌ ์‚ฌ์ „์— ์˜ˆ์™ธ ์ฒ˜๋ฆฌ๊ฐ€ ๋˜๋„๋ก ํ•  ํ•„์š”๊ฐ€ ์žˆ๋‹ค. ์ด๋Ÿด ๋•Œ ์ ์ ˆํ•œ ์กฐ์น˜๊ฐ€ ์—†์œผ๋ฉด ํ”„๋กœ๊ทธ๋žจ์€ ์—๋Ÿฌ๊ฐ€ ๋‚˜๋ฉฐ ์ฃฝ๊ฒŒ ๋˜๊ณ , ์˜ˆ์ƒ ์ด์™ธ์˜ ์ƒํ™ฉ์— ์ ์ ˆํ•œ ์กฐ์น˜๋ฅผ ์ทจํ•˜๋Š” ๋ฒ•์„ ๋ฐฐ์šด๋‹ค.

    ์—๋Ÿฌ์˜ ์ข…๋ฅ˜์™€ ๋Œ€์‘์ฑ…

    ๐Ÿ’ก
    1. ๋ฌธ๋ฒ• ์—๋Ÿฌ (Syntax error) 2. ์‹คํ–‰ ์‹œ ์—๋Ÿฌ (runtime error) 3. ๋…ผ๋ฆฌ ์—๋Ÿฌ (logic error) - Human Error

    ์—๋Ÿฌ ์ƒํ™ฉ ๋ณ„ ์ฒ˜๋ฆฌ

    ์˜ˆ์™ธ์  ์ƒํ™ฉ๋“ค

    • ๋ฉ”๋ชจ๋ฆฌ ๋ถ€์กฑ
    • ํŒŒ์ผ์„ ์ฐพ์„ ์ˆ˜ ์—†์Œ
    • null ์ธ ๋ณ€์ˆ˜๋ฅผ ์ฐธ์กฐ ํ–ˆ์Œ. ๋“ฑ

    ์˜ˆ์™ธ ์ฒ˜๋ฆฌ ํ๋ฆ„

    ์˜ˆ์™ธ์˜ ์ข…๋ฅ˜

    Java์—์„œ Error์™€ Exception์€ ๋‘˜ ๋‹ค ์˜ˆ์™ธ ์ƒํ™ฉ์„ ๋‚˜ํƒ€๋‚ด์ง€๋งŒ, ๋ฐœ์ƒ ์‹œ ์ฒ˜๋ฆฌ ๋ฐฉ์‹์ด ๋‹ค๋ฅด๋‹ค.

    ๐Ÿ’ก
    Error์™€ Exception๊ณผ์˜ ์ฐจ์ด

    Error๋Š” ์‹œ์Šคํ…œ ์ˆ˜์ค€์—์„œ ๋ฐœ์ƒํ•˜๋Š” ์‹ฌ๊ฐํ•œ ์˜ˆ์™ธ ์ƒํ™ฉ์œผ๋กœ, ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด๋‚˜ ์‚ฌ์šฉ์ž ์ฝ”๋“œ์—์„œ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ๋Œ€ํ‘œ์ ์œผ๋กœ OutOfMemoryError์ด๋‚˜ StackOverflowError ๋“ฑ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์˜ค๋ฅ˜๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ ๋ณต๊ตฌํ•  ์ˆ˜ ์—†๊ธฐ ๋•Œ๋ฌธ์—, ์˜ˆ์™ธ ์ฒ˜๋ฆฌ ๋ฐฉ๋ฒ•๋ณด๋‹ค๋Š” ์‹œ์Šคํ…œ ์ž์ฒด์˜ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ๊ฒƒ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

    Exception์€ ๊ฐœ๋ฐœ์ž๊ฐ€ ์˜ˆ์ธกํ•  ์ˆ˜ ์žˆ๋Š” ์˜ˆ์™ธ ์ƒํ™ฉ์œผ๋กœ, ์˜ˆ์™ธ ์ฒ˜๋ฆฌ๋ฅผ ํ†ตํ•ด ์ •์ƒ์ ์ธ ํ”„๋กœ๊ทธ๋žจ ์‹คํ–‰์„ ์œ ์ง€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Exception์€ ๋˜ RuntimeException๊ณผ ์ผ๋ฐ˜์ ์ธ Exception์œผ๋กœ ๋‚˜๋‰ฉ๋‹ˆ๋‹ค. RuntimeException์€ ๊ฐœ๋ฐœ์ž์˜ ์ž˜๋ชป๋œ ์ฝ”๋“œ๋‚˜ ๋กœ์ง์— ์˜ํ•œ ์˜ˆ์™ธ์ด๋ฉฐ, ๋ฐ˜๋ฉด์— ์ผ๋ฐ˜์ ์ธ Exception์€ ์™ธ๋ถ€ ํ™˜๊ฒฝ์˜ ๋ณ€ํ™”์— ์˜ํ•œ ์˜ˆ์™ธ์ž…๋‹ˆ๋‹ค.

    Java์—์„œ๋Š” Exception๊ณผ RuntimeException์€ ๋ชจ๋‘ checked exception์ด๋ผ๊ณ ๋„ ๋ถ€๋ฆ…๋‹ˆ๋‹ค. ์ด๋Š” ์˜ˆ์™ธ๊ฐ€ ๋ฐœ์ƒํ•  ๊ฐ€๋Šฅ์„ฑ์ด ์žˆ์œผ๋ฉด ๋ฐ˜๋“œ์‹œ ์˜ˆ์™ธ ์ฒ˜๋ฆฌ๋ฅผ ํ•ด์•ผ ํ•œ๋‹ค๋Š” ์˜๋ฏธ์ž…๋‹ˆ๋‹ค. ์ฆ‰, ์˜ˆ์™ธ ์ฒ˜๋ฆฌ๋ฅผ ํ•˜์ง€ ์•Š์œผ๋ฉด ์ปดํŒŒ์ผ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ ‡์ง€๋งŒ RuntimeException์€ unchecked exception์ด๋ผ๊ณ ๋„ ๋ถ€๋ฅด๋ฉฐ, ๋ช…์‹œ์ ์œผ๋กœ ์˜ˆ์™ธ ์ฒ˜๋ฆฌ๋ฅผ ํ•˜์ง€ ์•Š์•„๋„ ์ปดํŒŒ์ผ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

    ๋”ฐ๋ผ์„œ, ๊ฐœ๋ฐœ์ž๋Š” ๋ฐœ์ƒ ๊ฐ€๋Šฅํ•œ ์˜ˆ์™ธ ์ƒํ™ฉ์— ๋Œ€ํ•ด ์ ์ ˆํ•œ ์˜ˆ์™ธ ์ฒ˜๋ฆฌ ๋ฐฉ๋ฒ•์„ ๊ตฌํ˜„ํ•˜๊ณ , ์‹œ์Šคํ…œ ์ˆ˜์ค€์—์„œ ๋ฐœ์ƒํ•˜๋Š” Error์— ๋Œ€ํ•ด์„œ๋Š” ๋Œ€์ฒ˜ ๋ฐฉ๋ฒ•์„ ๋ฏธ๋ฆฌ ์ •์˜ํ•ด๋‘๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

    ์˜ˆ์™ธ ์ฒ˜๋ฆฌ ํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ

    ๐Ÿ’ก
    ์˜ˆ์™ธ ์ฒ˜๋ฆฌ๊ฐ€ ๋ฐ˜๋“œ์‹œ ํ•„์š”ํ•œ checked exception ์˜ˆ์™ธ ์ƒํ™ฉ์—์„œ ์˜ˆ์™ธ ์ฒ˜๋ฆฌ๋ฅผ ํ•˜์ง€ ์•Š์œผ๋ฉด, ์ปดํŒŒ์ผ ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค.

    try-catch ๋ฌธ์œผ๋กœ Exception ๊ณ„์—ด ์˜ˆ์™ธ์˜ ๋ฐœ์ƒ์„ ์ค€๋น„

    import java.io.IOException;
    
    public class Main {
    
        public static void main(String[] args) {
            try {
                int[] nums = {0, 1, 2};
                nums[5] = 1;
                
            } catch (ArrayIndexOutOfBoundsException e) {
                e.printStackTrace();
                System.out.println("์—๋Ÿฌ ๋ฐœ์ƒ");
            }
        }
    }
    ๐Ÿ’ก
    ๋ฏธ๋ฆฌ ์ง€์ •๋œ Exception ๊ณ„์—ด์ด ์•„๋‹Œ, Runtime Exception ๊ณ„์—ด์„ try-catch๋ฅผ ํ†ตํ•ด ์˜ˆ์™ธ ์ฒ˜๋ฆฌ๋ฅผ ํ–ˆ๋‹ค. e.printStackTrace(); ๋ฅผ ํ†ตํ•ด ์—๋Ÿฌ๋ฅผ ์ถœ๋ ฅํ•จ.

    ์˜ˆ์™ธ ์ฒ˜๋ฆฌ๋ฅผ ์ƒ์œ„ ๋ฉ”์†Œ๋“œ์— ๋ฏธ๋ฃจ๋Š” ๋ฐฉ๋ฒ•

    import java.io.IOException;
    
    public class Main {
        // ๋ฉ”์ธ ์‹œ์ž‘๋ถ€ํ„ฐ ํ•ด๋‹น ์˜ˆ์™ธ๋ฅผ ๋ฌด์‹œํ•˜๊ฒ ๋‹ค๋Š” ๋‚ด์šฉ
        public static void main(String[] args) throws InterruptedException { 
            System.out.println("์‹œ์ž‘");
            Thread.sleep(1000);
            System.out.println("๋");
    		}
    }
    ๐Ÿ’ก
    throws ํ‚ค์›Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ•ด๋‹น ๋ฉ”์†Œ๋“œ์—์„œ ๋ฐœ์ƒํ•  ๊ฐ€๋Šฅ์„ฑ์ด ์žˆ๋Š” ์˜ˆ์™ธ๋ฅผ ๋ช…์‹œ์ ์œผ๋กœ ์„ ์–ธํ•˜์—ฌ ํ•ด๋‹น ๋ฉ”์†Œ๋“œ๊ฐ€ ์˜ˆ์™ธ๋ฅผ ์ฒ˜๋ฆฌํ•˜๋„๋ก ์„ค์ •ํ•  ์ˆ˜ ์žˆ๋‹ค.

    ์˜ˆ์™ธ ์ธ์Šคํ„ด์Šค ์ด์šฉ ๋ฐฉ๋ฒ•

    import java.io.IOException;
    
    public class Main {
    
        public static void main(String[] args) {
            try {
                something();
                
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
    }
    
        public static void something() throws InterruptedException {
            System.out.println("์‹œ์ž‘");
            Thread.sleep(1000);
            System.out.println("๋");
        }
    }
    ๐Ÿ’ก
    throws์˜ ์˜ˆ์™ธ ์œ ๋ฐœ ์ฝ”๋“œ๋Š” ํ•ด๋‹น ๋ฉ”์„œ๋“œ์—์„œ ์„ค์ •ํ•˜๊ณ , ์ด๋ฅผ ์‚ฌ์šฉํ•˜๋Š” main()์—์„œ๋Š” try - catch๋กœ ์˜ˆ์™ธ ์ฒ˜๋ฆฌ๋ฅผ ํ•ด์ฃผ๋Š” ๊ฒƒ์ด ์ข‹๋‹ค.

    ์˜ˆ์™ธ๋ฅผ ํ‰์ณ์„œ ์ฒ˜๋ฆฌ

    import java.io.IOException;
    
    public class Main {
    
        public static void main(String[] args) {
            try {
                something();
                FileWriter fw = new FileWriter("data.txt");
                
            } catch (Exception e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
    }
    
        public static void something() throws InterruptedException {
            System.out.println("์‹œ์ž‘");
            Thread.sleep(1000);
            System.out.println("๋");
        }
    }
    ๐Ÿ’ก
    ์˜ˆ์™ธ์˜ ๋‹คํ˜•์„ฑ์„ ํ™œ์šฉํ•˜์—ฌ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์˜ˆ์™ธ ์œ ๋ฐœ์—๋„, ๊ฐ ์„ธ๋ถ€์ ์ธ Exception์˜ ๋” ํฐ ์ƒ์œ„์˜ ๋ฒ”์ฃผ์ธ Exception ์œผ๋กœ ํ‰์ณ์„œ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค.

    finally๋กœ ํ•ญ์ƒ ํ•ด์•ผํ•˜๋Š” ๊ตฌ๋ฌธ ์ฒ˜๋ฆฌ

    ๐Ÿ’ก
    ์˜ˆ์™ธ ๋ฐœ์ƒ์—๋„, ๋ฐ˜๋“œ์‹œ ์ฒ˜๋ฆฌํ•ด์•ผ ํ•˜๋Š” ๊ตฌ๋ฌธ์„ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด finally {} ์ถ”๊ฐ€. close()์— ๋Œ€ํ•œ try-catch ์ถ”๊ฐ€ํ•œ ๊ฒƒ (์œ„ ์ฝ”๋“œ๋Š” ๊ฐœ์„ ํ•  ์ ์ด ์žˆ๋‹ค. - ์•„๋ž˜ ์„ค๋ช…)

    Java8 ์ดํ›„์—๋Š” ์ž๋™ close() ์ฒ˜๋ฆฌ๋˜๋Š” try-catch

    ๐Ÿ’ก
    Java8 ๋ถ€ํ„ฐ๋Š” Closeable์„ ๊ตฌํ˜„ํ•˜๊ณ  ์žˆ๋Š” ๊ฐ์ฒด๋Š” try() ์—์„œ ์ž๋™์œผ๋กœ close() ํ•ด ์ค€๋‹ค.

    ๐Ÿ’ก
    FileWriter์™€ ๊ฐ™์ด close()๊ฐ€ ํ•„์š”ํ•œ ๊ตฌ๋ฌธ์„ try ๋ฌธ์— ๋„ฃ์œผ๋ฉด ์ดํ›„ ์ž๋™์œผ๋กœ close() ์ฒ˜๋ฆฌ๊ฐ€ ๋œ๋‹ค.

    ์—๋Ÿฌ์˜ ์ „๋‹ฌ

    ์˜ˆ์™ธ ์ธ์Šคํ„ด์Šค๋ฅผ ์ž์‹ ์—๊ฒŒ ๋˜์ง€๊ธฐ

    ๐Ÿ’ก
    setter์— IllegalArgumentException()์„ ํ†ตํ•ด ์˜ˆ์™ธ๊ฐ€ ์œ ๋ฐœ๋˜๋„๋ก ์„ค์ •ํ•  ์ˆ˜ ์žˆ๋‹ค.

    java assert

    ๐Ÿ’ก
    IllegalArgumentException()์™€ ๋น„์Šทํ•œ ๊ธฐ๋Šฅ์œผ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. Java์—์„œ assert๋Š” ํ”„๋กœ๊ทธ๋žจ์ด ์‹คํ–‰๋  ๋•Œ ์กฐ๊ฑด์ด ์ฐธ์ธ์ง€ ๊ฒ€์‚ฌํ•˜๊ณ , ์กฐ๊ฑด์ด ๊ฑฐ์ง“์ผ ๊ฒฝ์šฐ AssertionError๋ฅผ ๋ฐœ์ƒ์‹œํ‚ค๋Š” ๊ธฐ๋Šฅ์ด๋‹ค.

    assert๋ฌธ์€ ๊ฐœ๋ฐœ์ž๊ฐ€ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๋ฉด์„œ ์˜ˆ์ƒ๋˜๋Š” ์กฐ๊ฑด์„ ๊ฒ€์ฆํ•˜๊ณ , ์ฝ”๋“œ์˜ ์˜ค๋ฅ˜๋ฅผ ๋นจ๋ฆฌ ์ฐพ์„ ์ˆ˜ ์žˆ๋„๋ก ๋„์™€์ค๋‹ˆ๋‹ค. assert๋ฌธ์€ ๊ฐœ๋ฐœ ๋‹จ๊ณ„์—์„œ๋งŒ ์‚ฌ์šฉํ•˜๊ณ , ๋ฆด๋ฆฌ์ฆˆ ๋‹จ๊ณ„์—์„œ๋Š” ๋น„ํ™œ์„ฑํ™”ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

    public int divide(int a, int b) {
        assert b != 0;
        return a / b;
    }

    ์˜ค๋ฆฌ์ง€๋‚  ์˜ˆ์™ธ ํด๋ž˜์Šค ์ •์˜

    ๐Ÿ’ก
    Exception์„ ์ƒ์† ๋ฐ›์•„ ์ง์ ‘ ์˜ˆ์™ธ๋ฅผ ์ •์˜ํ•  ์ˆ˜ ์žˆ๋‹ค. (์ž˜ ์‚ฌ์šฉํ•˜์ง€๋Š” ์•Š๋Š”๋‹ค.)

    15์žฅ ์ •๋ฆฌ

    ๐Ÿ’ก
    ์—๋Ÿฌ - syntax error, runtime error, logic error ์˜ 3์ข…๋ฅ˜ - ์˜ˆ์™ธ์ฒ˜๋ฆฌ๋ฅผ ํ•  ๋•Œ๋Š”, runtime error๋ฅผ ๋Œ€์ฒ˜ํ•œ๋‹ค

    ์˜ˆ์™ธ์˜ ์ข…๋ฅ˜ - API์—๋Š” ์—ฌ๋Ÿฌ๊ฐ€์ง€ ์˜ˆ์™ธ์  ์ƒํ™ฉ์„ ํ‘œํ˜„ํ•˜๋Š” ์˜ˆ์™ธ ํด๋ž˜์Šค๊ฐ€ ์ค€๋น„๋˜์–ด ์žˆ๋‹ค. - ์˜ˆ์™ธ ํด๋ž˜์Šค๋Š” Error ๊ณ„์—ด, Exeption ๊ณ„์—ด, RuntimeException ๊ณ„์—ด๋กœ ํฌ๊ฒŒ ๋‚˜๋‰œ๋‹ค - ์˜ˆ์™ธ ํด๋ž˜์Šค๋ฅผ ์ƒ์†ํ•˜์—ฌ ์˜ค๋ฆฌ์ง€๋‚  ์˜ˆ์™ธ ํด๋ž˜์Šค๋ฅผ ์ •์˜ํ•  ์ˆ˜ ์žˆ๋‹ค.

    ์˜ˆ์™ธ ์ฒ˜๋ฆฌ - try-catch ๋ฌธ์„ ์‚ฌ์šฉํ•˜๋ฉด, try ๋ธ”๋ก ๋‚ด์— ์˜ˆ์™ธ๊ฐ€ ๋ฐœ์ƒํ–ˆ์„ ๋•Œ catch ๋ธ”๋ก์—์„œ ์ฒ˜๋ฆฌ๊ฐ€ ์˜ฎ๊ฒจ์ง„๋‹ค - finally ๋ธ”๋ก์œผ๋กœ ๋‚˜์ค‘์— ๊ผญ ํ•ด์•ผํ•˜๋Š” ์ฒ˜๋ฆฌ๋ฅผ ํ•  ์ˆ˜ ์žˆ๋‹ค - Exception ๊ณ„์—ด ์˜ˆ์™ธ๊ฐ€ ๋ฐœ์ƒํ•  ๊ฐ€๋Šฅ์„ฑ์ด ์žˆ์„ ๋•Œ์—๋Š” try-catch ๋ฌธ์ด ํ•„์ˆ˜๋‹ค - throw ์„ ์–ธ์„ ํ•˜๋ฉด, ์˜ˆ์™ธ ์ฒ˜๋ฆฌ๋ฅผ ํ˜ธ์ถœํ•˜๋Š” ์ฃผ์ฒด์— ์œ„์ž„ํ•˜๋Š” ํ•  ์ˆ˜ ์žˆ๋‹ค. - throw ๋ฌธ์„ ์‚ฌ์šฉํ•˜๋ฉด ์ž„์˜๋กœ ์˜ˆ์™ธ๋ฅผ ๋ฐœ์ƒ์‹œํ‚ฌ ์ˆ˜ ์žˆ๋‹ค


    ๐Ÿ“์—ฐ์Šต ๋ฌธ์ œ

    15-1

    package com.pkd.Exam;
    
    public class Main {
    
        public static void main(String[] args) {
            String s = null;
            System.out.println(s.length());
        }
    }

    15-2

    package com.pkd.Exam;
    
    public class Main {
    
        public static void main(String[] args) {
            String s = null;
            try {
                System.out.println(s.length());
            } catch(NullPointerException e){
                System.out.println("NullPointException ์˜ˆ์™ธ๋ฅผ catch ํ•˜์˜€์Šต๋‹ˆ๋‹ค");
                System.out.println("---- stack trace (์—ฌ๊ธฐ๋ถ€ํ„ฐ) ----");
                e.printStackTrace();
                System.out.println("---- stack trace (์—ฌ๊ธฐ๊นŒ์ง€) ----");
            }
        }
    }

    15-3

    package com.pkd.Exam;
    
    public class Main3 {
    
        public static void main(String[] args) {
            String s = "Tree";
            try {
                int i = Integer.parseInt(s);
            } catch (NumberFormatException e) {
                e.printStackTrace();
            }
        }
    }

    15-4

    package com.pkd.Exam;
    
    import java.io.IOException;
    
    public class Main {
    
        public static void main(String[] args) throws IOException {
            System.out.println("ํ”„๋กœ๊ทธ๋žจ ์‹œ์ž‘");
            throw new IOException();
        }
    }



    Uploaded by N2T

    728x90
    ๋ฐ˜์‘ํ˜•

    ๋Œ“๊ธ€

Keydi's Tistory