C# - ๊ณ ๊ธ‰ํ”„๋กœ๊ทธ๋ž˜๋ฐ (์˜ˆ์™ธ)

2020. 11. 27. 18:03ใ†์ „๊ณต ๊ณผ๋ชฉ/์œˆ๋„์šฐ ํ”„๋กœ๊ทธ๋ž˜๋ฐ

C# - ๊ณ ๊ธ‰ํ”„๋กœ๊ทธ๋ž˜๋ฐ (์˜ˆ์™ธ)

 

์ด๋ฒˆ ์žฅ์—์„œ๋Š” ์˜ˆ์™ธ์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณผ ๊ฒƒ์ด๋‹ค.

์˜ˆ์™ธ๋Š” ํ”„๋กœ๊ทธ๋žจ ์‹คํ–‰์‹œ๊ฐ„์— ๋ฐœ์ƒํ•˜๋Š” ์—๋Ÿฌ๋ฅผ ์ผ์ปซ๋Š” ๋ง์ด๋‹ค.

 

์ด๋Ÿฌํ•œ ์˜ˆ์™ธ์— ๋Œ€ํ•ด์„œ ์ฒด๊ณ„์ ์œผ๋กœ ๊ฒ€์‚ฌํ•˜๊ณ  ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์„ ์ œ๊ณตํ•ด ์ฃผ๋Š” ๊ฒƒ์ด ์šฐ๋ฆฌ ํ”„๋กœ๊ทธ๋ž˜๋จธ๋“ค์˜ ์—ญํ• ์ด๋‹ค.

์ด๋ฅผ ์˜ˆ์™ธ ์ฒ˜๋ฆฌ๊ธฐ ์ž‘์„ฑ์ด๋ผ๊ณ  ํ•œ๋‹ค.

 

์ผ๋ฐ˜์ ์œผ๋กœ ์˜ˆ์™ธ๋Š” Exceptionํด๋ž˜์Šค์˜ ํŒŒ์ƒ ํด๋ž˜์Šค์ธ ApplicationException ํด๋ž˜์Šค๋ฅผ ์ƒ์†๋ฐ›์€ ์ƒˆ๋กœ์šด ์˜ˆ์™ธ ํด๋ž˜์Šค๋ฅผ ์ •์˜ํ•œ๋‹ค.

 

์•„๋ž˜ ๊ฐ„๋‹จํ•œ ์˜ˆ์ œ๋ฅผ ํ†ตํ•ด ํ™•์ธํ•ด๋ณด์ž.

public class UserErrException : ApplicationException
{
    public UserErrException(string s): base(s) { }
    }

    public class Program
    {
        public static void Main(string[] args)
        {
        try
        {
            throw new UserErrException("throw a exception with a message");
        }catch(UserErrException e)
        {
            Console.WriteLine(e.Message);
        }
        }
    }

 

1) ์‚ฌ์šฉ์ž ์ •์˜ ์˜ˆ์™ธ ์ƒ์„ฑ์ž๋ฅผ ์„ ์–ธํ•  ๋•Œ๋Š” ๋ฐ˜๋“œ์‹œ ๋ถ€๋ชจ ํด๋ž˜์Šค์—์„œ๋„ ์ƒ์„ฑ์ž๋ฅผ ํ˜ธ์ถœํ•ด์ค˜์•ผํ•œ๋‹ค.

2) e.Message๋ฅผ ํ†ตํ•ด ํ”„๋กœํผํ‹ฐ์— ์ ‘๊ทผํ•ด ๊ฐ’์„ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ๋‹ค.

 

 

๋‹ค์Œ์€ throw์˜ ์˜๋ฏธ๋ฅผ ๊ทน๋ช…ํ•˜๊ฒŒ ์•Œ ์ˆ˜ ์žˆ๋Š” ์˜ˆ์ œ์ด๋‹ค.

 

using System;


class UserException : ApplicationException { }
class UserExThrowApp
{
    static void Method()
    {
        throw new UserException();
    }
    public class Program
    {
        public static void Main(string[] args)
        {
            try
            {
                Console.WriteLine("Here : 1");
                Method();
                Console.WriteLine("Here : 2");

            }
            catch (UserException)
            {
                Console.WriteLine("User-defined Exception");
            }
        }
    }
}

์˜ˆ์™ธ ์ฒ˜๋ฆฌ

- ์˜ˆ์™ธ ์ฒ˜๋ฆฌ๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ try-catch-finally ๊ตฌ๋ฌธ์„ ํ†ตํ•ด์„œ ์ฒ˜๋ฆฌํ•œ๋‹ค.

try๋กœ ๋จผ์ € ์‹คํ–‰์„ ํ•˜๊ณ  catch๋กœ ์˜ˆ์™ธ๋ฅผ ์žก์€๋‹ค์Œ, finally๋กœ ๋งˆ๋ฌด๋ฆฌ๋ฅผ ์ง“๋Š” ๊ตฌ์กฐ์ด๋‹ค.

 

try-catch-finally ์˜ˆ์ œ -1

 

using System;

class UserExceptionOne : ApplicationException { }
class UserExceptionTwo : ApplicationException { }
class ExceptionHandlerApp
{
    static void Method(int i)
    {
        if (i == 1)
        {
            throw new UserExceptionOne();
        }
        else
        {
            throw new UserExceptionTwo();
        }
    }

    public class Program
    {
        public static void Main(string[] args)
        {
            try
            {
                Console.WriteLine("Here : 1");
                Method(2);
                Console.WriteLine("Here : 2");
            }
            catch (UserExceptionOne)
            {
                Console.WriteLine("UserExceptionone");

            }
            catch (UserExceptionTwo)
            {
                Console.WriteLine("UserExceptiontwo");
            }
            finally
            {
                Console.WriteLine("Here:3");
            }
}
    }
}

 

๊ฒฐ๊ณผ ํ™”๋ฉด