C#/์ด๊ฒƒ์ด C#์ด๋‹ค

์˜ˆ์™ธ ์ฒ˜๋ฆฌํ•˜๊ธฐ(2) System.Exception ํด๋ž˜์Šค

Rainbow๐ŸŒˆCoder 2022. 4. 17. 18:06
728x90

https://youtu.be/Os_o-7eGu7Y

 

 

12.3 System.Exception ํด๋ž˜์Šค

System.Exception ํด๋ž˜์Šค๋Š” ๋ชจ๋“  ์˜ˆ์™ธ์˜ ์กฐ์ƒ์ด๋‹ค. C#์—์„œ ๋ชจ๋“  ์˜ˆ์™ธ ํด๋ž˜์Šค๋Š” ๋ฐ˜๋“œ์‹œ ์ด ํด๋ž˜์Šค๋กœ๋ถ€ํ„ฐ ์ƒ์†๋ฐ›์•„์•ผ ํ•œ๋‹ค.

IndexOutOfRangeException ์˜ˆ์™ธ๋„ System.Exception ์œผ๋กœ๋ถ€ํ„ฐ ํŒŒ์ƒ๋˜์—ˆ๋‹ค.

 

๊ทธ๋ ‡๋‹ค๋ฉด ์ƒ์† ๊ด€๊ณ„๋กœ ์ธํ•ด ๋ชจ๋“  ์˜ˆ์™ธ ํด๋ž˜์Šค๋Š” System.Exception ํ˜•์‹์œผ๋กœ ๊ฐ„์ค„ํ•  ์ˆ˜ ์žˆ๊ณ ,

System.Exception ํ˜•์‹์˜ ์˜ˆ์™ธ๋ฅผ ๋ฐ›๋Š” catch ์ ˆ ํ•˜๋‚˜๋ฉด ๋ชจ๋“  ์˜ˆ์™ธ๋ฅผ ๋‹ค ๋ฐ›์„ ์ˆ˜ ์žˆ๋‹ค๋Š” ๋œป์ด ๋œ๋‹ค.

<1>

            try
            {

            }
            catch(IndexOutOfRangeException e)
            {
                //...
            }
            catch(DivideByZeroException e)
            {
                //...
            }

 

<2>

            try
            {

            }
            catch (Exception e)
            {

            }

๊ทธ๋Ÿฌ๋‚˜ <2>์ฒ˜๋Ÿผ ์—ฌ๋Ÿฌ๊ฐ€์ง€ ์˜ˆ์™ธ ํ˜•์‹์„ ๊ตฌ๋ถ„ํ•˜์ง€ ์•Š๊ณ  System.Exception ํด๋ž˜์Šค ๋‹จ ํ•˜๋‚˜๋งŒ์œผ๋กœ ์˜ˆ์™ธ์ฒ˜๋ฆฌ๋ฅผ ํ•˜๊ฒŒ ๋˜๋ฉด ์˜ˆ์™ธ ์ƒํ™ฉ์— ๋”ฐ๋ผ ์„ฌ์„ธํ•˜๊ฒŒ ์˜ˆ์™ธ์ฒ˜๋ฆฌ๋ฅผ ํ•  ์ˆ˜ ์—†๊ฒŒ ๋œ๋‹ค.

Exception ํด๋ž˜์Šค ๋งŒ์œผ๋กœ ๋Œ€์‘์ด ์–ด๋ ค์šฐ๋ฏ€๋กœ ๊ท€์ฐฎ๋‹ค๊ณ  ๋ฌด์กฐ๊ฑด Exception ํด๋ž˜์Šค๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ๋ง ๊ฒƒ.

 

ํŠนํžˆ, ํ”„๋กœ๊ทธ๋ž˜๋จธ๊ฐ€ ์˜ˆ์ƒํ•œ ์˜ˆ์™ธ ๋ง๊ณ  ๋‹ค๋ฅธ ์˜ˆ์™ธ๊นŒ์ง€ ๋ฐ›์•„๋‚ผ ์ˆ˜ ์žˆ๋‹ค.

๊ทธ ์˜ˆ์™ธ๊ฐ€ ํ˜„์žฌ ์ฝ”๋“œ๊ฐ€ ์•„๋‹Œ ์ƒ์œ„ ์ฝ”๋“œ์—์„œ ์ฒ˜๋ฆฌํ•ด์•ผ ํ•  ์˜ˆ์™ธ๋ผ๋ฉด, ์ด ์ฝ”๋“œ๋Š” ์˜ˆ์™ธ๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ๋˜๋ ค ๋ฒ„๊ทธ๋ฅผ ๋งŒ๋“œ๋Š” ์…ˆ์ด ๋˜์–ด ๋ฒ„๋ฆฐ๋‹ค.

System.Exception ์˜ˆ์™ธ๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ๋Š” ์ฝ”๋“œ๋ฅผ ๋ฉด๋ฐ€ํžˆ ๊ฒ€ํ† ํ•ด์„œ ์ฒ˜๋ฆฌํ•˜์ง€ ์•Š์•„์•ผ ํ•  ์˜ˆ์™ธ๊นŒ์ง€ ์ฒ˜๋ฆฌํ•˜๋Š” ์ผ์ด ์—†๋„๋ก ํ•ด์•ผ ํ•œ๋‹ค.

 

728x90