Exception Class에서 에러 코드 해석 ~초기초편~

직장에서 C# 프로젝트가 내뿜는 오류 코드를 구문 분석하고 오류의 위치를 ​​확인하기 위해 Exception class를 활용할 수 있었습니다. 지금까지 Exception Class 에 대해서 별로 파악할 수 없었기 때문에, 공부를 위해 정리해 보려고 생각합니다.
이 기사에서는, 우선 Exception Class 의 초기본적인 사용법을 정리해, 여러가지 Exception Class 를 향후 사용할 수 있도록(듯이) 해 나가려고 생각합니다.

Visual Studio에서 적절한 C# 코드 작성



먼저 Visual Studio의 새 프로젝트 만들기에서 적절한 ASP.core 콘솔 앱을 만듭니다.
이번에는 아래 코드를 입력하여 나눗셈을 계산하는 콘솔 앱을 만들었습니다.

program.cs
using System;

namespace ConsoleApp20191012
{
    class Program
    {
        static void Main(string[] args)
        {

            int num1 = 0; int num2 = 0;
            Console.WriteLine("Console Calcutator i C#\r");

            Console.WriteLine("Type a number, and then press Enter");

            num1 = Convert.ToInt32(Console.ReadLine());

            Console.WriteLine("Type a number, and then press Enter");
            num2 = Convert.ToInt32(Console.ReadLine());

            Console.WriteLine($"Your result: {num1} / {num2} = " + (num1 / num2));

            Console.Write("Press any key to close the Calculator console app...");
            Console.ReadKey();
        }
    }
}

이 코드는 단순히 콘솔에서 입력한 두 개의 숫자를 나누는 코드입니다.
예를 들어 첫 번째 숫자를 100, 두 번째 숫자를 4로 입력하면 25라는 대답이 나옵니다.


이 때 입력한 값은 100과 4라는 명백한 정수였지만, 이것을 예를 들어 히라가나를 입력해 보면 어떻게 될까요?



콘솔 입력에서 "A"를 입력했을 때 핸들되지 않은 예외라는 경고와 함께 디버그가 중지되었습니다.
이것은 Visual Studio의 기능 중 하나입니다만, 이러한 예외가 입력되었을 때에, 디버그의 도중에 정지하는 것이 아니라, 콘솔에 무언가의 문자를 돌려주는 것 같은 처리를 하고 싶을 때에 편리한 것이 , "Exception Class"입니다.

Exception Class 삽입



Exception Class의 삽입은 간단하고, try/catch를 사용합니다.
Try에서 처리되는 것의 예외가 Catch로 날아간다는 느낌입니다.
예를 들어 이전 예외 처리에 있던 「아」라고 하는 숫자 이외의 것이 입력되었을 때에, 콘솔에 「올바른 값을 입력해 주세요」라고 하는 기입을 하는 처리를 시키기 위해서는, 이하와 같은 코드 쓰기.



최초의 문자를 입력할 때에, 예외 처리가 있는 경우에 콘솔에 문자 「올바른 값을 입력해 주세요」를 출력되는 것 같은 처리입니다. 실시에 디버그 해 보면, 다음과 같은 결과가 됩니다.


이것은 예외 처리의 초기초 코드입니다.
이것은 단순히 이상한 값이 입력되었을 때에 예외를 돌려주는 처리를 실시하고 있습니다만, 예를 들면 「00÷0」라고 하는 분모의 올바르지 않은 숫자가 입력되었을 경우는 「ArithmeticException Class」를 사용합니다 .

ArithmeticException Class 를 사용해 본다



Exception Class 는 여러가지 Class 가 준비되어 있습니다만, 그 안에 있는, 수식적인 예외가 있을 때에 처리를 실행하는 ArithmeticException Class 를 사용해 보겠습니다.

앞의 코드를 다음과 같이 바꿉니다.



계산을 하는 처리의 곳에서 예외 처리로, 「분모에는 올바른 문자를 입력해 주세요」라고 하는 문자를 돌려주도록 하고 있습니다. 결과 분자에 100, 0을 입력하면 예외 처리를 반환합니다.


이제 올바르게 예외 처리를 설정할 수 있습니다.
아래 코드입니다.

program.cs
using System;

namespace ConsoleApp20191012
{
    class Program
    {
        static void Main(string[] args)
        {

            int num1 = 0; int num2 = 0;
            Console.WriteLine("Console Calcutator i C#\r");

            Console.WriteLine("Type a number, and then press Enter");

            try
            {
                num1 = Convert.ToInt32(Console.ReadLine());
            }
            catch (Exception e)
            {
                Console.WriteLine("正しい値を入力してください");
            }

            Console.WriteLine("Type a number, and then press Enter");
            num2 = Convert.ToInt32(Console.ReadLine());

            try
            {
                Console.WriteLine($"Your result: {num1} / {num2} = " + (num1 / num2));
            }
            catch (ArithmeticException e)
            {
                Console.WriteLine("分母には正しい文字を入力してください");
            }

            Console.Write("Press any key to close the Calculator console app...");
            Console.ReadKey();
        }
    }
}

초기초편은 이상입니다만, 상기의 처리는 매일 워밍업으로 써도 좋을 정도 잘 사용하므로, 확실히 이해해 가고 싶습니다. 다음 예외 기사에서는 예외와 throw 메서드를 활용한 디버깅에 대해 정리해 가고 싶습니다.

참고 URL



Visual Studio에서 간단한 C# 콘솔 앱 만들기
htps : // / cs. 미 c 로소 ft. 코 m / 쟈 jp / ぃ す あ ls つ ぢ 오 / 게 ts dr d / c 샤 rp / 쓰리 아 l 응?ゔ ぃ w = vs - 2019

Exception Class
htps : // / cs. 미 c 로소 ft. 이 m / 그럼 jp / t 네 t / 아피 / sys m. 에 x 세 p 치오?ぃぃ w = 네 tf 라메를 rk-4.8

ArithmeticException Class
htps : // / cs. 미 c 로소 ft. 이 m / 그럼 jp / t 네 t / 아피 / sys m. 예 th 메치세 x 세 p 치오?ぃぃ w = 네 tf 라메를 rk-4.8

좋은 웹페이지 즐겨찾기