C#

[C# ๊ธฐ์ดˆ๊ณต๋ถ€] ์ ํ”„๋ฌธ(goto, continue, return, break)/ ์˜ˆ์™ธ ์ฒ˜๋ฆฌ๋ฌธ(if~else)(try~catch)(try~finally)(throw)

zoozoo2 2023. 1. 6. 16:29

๐ŸŸจ ์˜ˆ์™ธ ์ฒ˜๋ฆฌ๋ฌธ โ˜…โ˜…โ˜…โ˜…โ˜…

โ–ถ์˜ˆ์™ธ๋ž€? ๋Ÿฐํƒ€์ž„์‹œ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋Š” ์˜ค๋ฅ˜

 

โ–ถ ์˜ˆ์™ธ ์ฒ˜๋ฆฌ ๋ฐฉ๋ฒ•

  • if ~ else
  • try ~ catch๋ฌธ ์‚ฌ์šฉ

 

try

 {

     //์˜ˆ์™ธ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋Š” ์ฝ”๋“œ

 }

catch(์˜ˆ์™ธ์ฒ˜๋ฆฌ๊ฐ์ฒด e)

 {

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

 }

 

โ–ถ System.Exception ํŒŒ์ƒ ๊ฐ์ฒด๋งŒ ์‚ฌ์šฉ

  • OverFlowException
  • FormatException
  • DivideByZeroException
  • FileNotFoundException

โ–ถ IndexOutOfRangeException : ๋ฐฐ์—ด์˜ ์ธ๋ฑ์Šค

 

 

namespace ConsoleApp4
{
    class Myclass
    {
        static void Main(string[] args)
        {
            int[] array = {1,2,3};
            try
            {
                array[3] = 10;
            }
            catch(IndexOutOfRangeException e)
            {
                Console.WriteLine("๋ฐฐ์—ด ์ธ๋ฑ์Šค ์—๋Ÿฌ ๋ฐœ์ƒ");
                Console.WriteLine(e.ToString()); //์—๋Ÿฌ ์›์ธ ์ถœ๋ ฅ ์ฝ”๋“œ
                array[2] = 10;
            }
            for (int i = 0; i < array.Length; i++)
            {
                Console.WriteLine("{0}", array[i]);
            }

        }
    }
}

๐ŸŸจ try ~ catch

try๋ฌธ ์•ˆ์—์„œ ์ดˆ๊ธฐํ™”ํ•œ ๋ณ€์ˆ˜๋ฅผ try ๋ฌธ ๋ฐ–์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๋‹ค.

 

try๋ฌธ ์•ˆ์—์„œ ์ดˆ๊ธฐํ™” ํ•œ ๋ณ€์ˆ˜ m์„ try๋ฌธ ๋ฐ–์—์„œ ์‚ฌ์šฉํ•˜๋ ค๋‹ˆ ์—๋Ÿฌ ๋‚จ

๊ทธ๋Ÿผ ํ•ด๊ฒฐ์€?

try๋ฌธ ๋ฐ–์—์„œ ์ดˆ๊ธฐํ™” ํ•˜๋ฉด ๋œ๋‹ค!

๐ŸŸฉ  try~finally

โ–ถfinally

  • ์˜ˆ์™ธ ๋ฐœ์ƒ๊ณผ ์ƒ๊ด€์—†์ด ํ•ญ์ƒ ์‹คํ–‰๋˜๋Š” ๊ตฌ๋ฌธ

โ–ถ ์˜ˆ์™ธ์ ์ธ ์ƒํ™ฉ์ด ๋ฐœ์ƒํ–ˆ์„ ๋•Œ finally ์ฒ˜๋ฆฌ

โ–ถ์˜ˆ์™ธ์ƒํ™ฉ์ด ๋ฐœ์ƒํ•˜์ง€ ์•Š์•˜์„ ๋•Œ finally์ฒ˜๋ฆฌ

namespace ConsoleApp4
{
    class Myclass
    {
        static void Main(string[] args)
        {
            int[] array = { 1, 2, 3, };
            try
            {
                Console.WriteLine("try๋ฌธ์—์„œ ์˜ˆ์™ธ ๋ฐœ์ƒ์‹œํ‚ต๋‹ˆ๋‹ค.");
                array[3] = 10;
            }
            finally
            {
                Console.WriteLine("finally ๊ตฌ๋ฌธ์ž…๋‹ˆ๋‹ค.");
            }
        }
    }
}

์˜ˆ์™ธ๊ฐ€ ๋ฐœ์ƒํ–ˆ์Œ์—๋„ finally ๊ตฌ๋ฌธ์€ ์‹คํ–‰๋จ์„ ์•Œ ์ˆ˜์žˆ๋‹ค.

 

namespace ConsoleApp4
{
    class Myclass
    {
        static void Main(string[] args)
        {
            int i = 0;
            try
            {
                i = 12;
            }
            finally
            {
                i = 100;
                Console.WriteLine("finally ๋ฌธ i ๊ฐ’: {0}", i);
            }
            i = 200;
            Console.WriteLine("try finally๋ฌธ ๋ฐ–์—์„œ ์‹คํ–‰ i ๊ฐ’: {0}",i);
        }
    }
}

 

 

 ๐Ÿ”จ๊ฒฐ๋ก  catch ๋ฌธ์€ try ์—์„œ ์˜ˆ์™ธ ๋ฐœ์ƒ์‹œ ์‹คํ–‰๋˜๊ณ , finally๋ฌธ์€ ์˜ˆ์™ธ์™€ ์ƒ๊ด€์—†์ด ํ•ญ์ƒ ์‹คํ–‰๋จ

 

 

๐ŸŸฉ  ๋‹ค์ค‘ ์˜ˆ์™ธ ์ฒ˜๋ฆฌ

 โ–ถ ํ˜•์‹

     try {

       ....

     } catch (OverFlowException e) {

        ....

     } catch ( FormatException e){

        ....

     } catch( DivideByZeroException e){

        ....

     }

     

๐ŸŸฉ throw

 โ–ถ throw(๋˜์ง€๋‹ค)

์˜ˆ์™ธ ์ƒํ™ฉ์„ ์ž„์˜๋กœ ๋ฐœ์ƒ์‹œํ‚ค๋Š” ์—ญํ• 

 โ–ถ System.Exception ํŒŒ์ƒ๋œ ๊ฐ์ฒด๋งŒ ์‚ฌ์šฉ

 โ–ถ try ๋ฌธ๊ณผ ๊ทธ ์™ธ์—์„œ ์‚ฌ์šฉ๊ฐ€๋Šฅ

 

๐Ÿ’š ์ •๋ฆฌ

  • ๋Œ€๋ถ€๋ถ„์˜ ์—ฐ์‚ฐ์ž๋Š” C, C++ ์–ธ์–ด์™€ ๊ฐ™์Œ
  • C#์—์„œ ์ƒˆ๋กญ๊ฒŒ ๋“ฑ์žฅํ•œ ์—ฐ์‚ฐ์ž: is ์—ฐ์‚ฐ์ž, as์—ฐ์‚ฐ์ž, null ๋ณ‘ํ•ฉ ์—ฐ์‚ฐ์ž( ? ?)
  • for, while, do~while
  • foreach
  • ์˜ˆ์™ธ์ฒ˜๋ฆฌ๋ฌธ
  • try~catch~finally
  • throw