예외 처리

동기 부여도 중요하다고 생각하므로 각서로 사용합니다.
감상 예외는 C#7에서 switch로 사용하는 방법도 있는 것 같고 프로퍼티나 enum으로 복수 처리할 필요가 있는 경우에 사용할 수 있다고 생각하지만,
그만큼의 에러수마다의 작성은 뼈가 부러진다고 생각했습니다.
꺾어 접어 뿐입니다만…DB 취급할 때 실천적으로 해 나가려고 생각합니다. 이상은 사쿠토 사양만 메모는 자작 할 수 있으면 좋지만, 좀처럼 잘 가지 않는다 ☂
모치베도 떨어졌기 때문에 일단 전환해 연내는 통역 관계의 사업 계획서 제작에 전념하고 싶습니다.



예외 처리



예외가 던졌을 때 발생하는 처리입니다.
분기로도 사용할 수 있지만 무겁기 때문에 보통은 사용하지 않습니다.
초기 프로그래밍계에서는 대부분이 이 예외 처리였다고 합니다.
(그 시대가 아니어서 좋았다…)

이전에 갔다 기본값 외 예외 처리 코드
            // 既定値外
            int numOfTesters = exNo;

            // 文字は代入されずwhileへ、既定値外は代入されwhileへ、既定値は代入されwhileパス
            if (int.TryParse(Console.ReadLine(), out var nType))
            { numOfTesters = nType; }


            while (numOfTesters < 0)
            {
                Console.Write("retype. ");
                if (int.TryParse(Console.ReadLine(), out nType))
                    numOfTesters = nType;
            }


이 방법으로 예외를 처리할 수 있습니다. if while 에서 기본값 이외의 기본값을 벗어나 문자를 처리하여 루프로 만들었습니다.

예외 처리를 위한 구문



1.try catch



예외 처리의 정평, try{例外123...} catch{処理}catchwhen 붙일 수 있게 되었다(예외 처리 같으면 정리해 catch)catch (Exception e) when (e is ArgumentNullException || e is ArgumentOutOfRangeException)
사전 지식:

세트
using System.IO; //読み書き

Console.WriteLine(strmRdr.ReadToEnd()); //内容をすべて読み込む
strmRdr.Close(); ////.ReadToEnd後関連付けられたすべてのシステムリソースを解放 

예외 오류 메시지 그대로 표시
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }

기본 코드 예제는 여기에 나와 있습니다.
using System;
using System.IO;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            try
            {
                Console.Write ("fileパス指定 ");
                StreamReader strmRdr = new StreamReader(Console.ReadLine());
                Console.WriteLine(strmRdr.ReadToEnd()); //内容をすべて読み込む
                strmRdr.Close(); ////.ReadToEnd後関連付けられたすべてのシステムリソースを解放 
                Console.ReadLine();
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }


        }

    }
}




try catch하지 않고 경로가 틀린 경우 오류
using System;  
using System.IO;  
namespace ConsoleApplication1 {  
    class Program {  
        static void Main(string[] args) {  
                Console.Write ("fileパス指定 ");
                StreamReader strmRdr = new StreamReader(Console.ReadLine());
                Console.WriteLine(strmRdr.ReadToEnd()); //内容をすべて読み込む
                strmRdr.Close(); ////.ReadToEnd後関連付けられたすべてのシステムリソースを解放
        }  
    }  
}




따라서 try catch 에서 파일이 없을 때 오류를 처리할 수

2.Exception class/member



Exception class는 예외 메시지를 검색하는 라이브러리입니다.
사용할 때는 직렬화(에러 메세지나 설정 파일의 전송이나 보존)라고 한다.

주요 Exception 클래스 및 멤버 Best 5
catch(FileNotFoundException ex){//存在しないファイル}
catch(NullReferenceException ex){//nullのオブジェクトを操作した}
catch(DivideByZeroException ex){//0による除算}
catch(IndexOutOfRangeException ex){//配列境界こえた}
catch(Exception ex){//その他の例外}

{Console.WriteLine(ex.Message);}//例外に関するメッセージ
{Console.WriteLine(ex.Source);}//発生源のアプリやファイル名
{Console.WriteLine(ex.HelpLink);}//その例外に関するヘルプリンク
{Console.WriteLine(ex.StackTrace);}//処理メソッド説明(デバッグ情報でスタックトレース(スタックの追跡))
{Console.WriteLine(ex.TargetSite);}//例外発生した部分表示

//1つの処理で複数例外でる場合、throwで別のメソッドに再スローすればいい
//逆に複数処理で1つの例外でる場合、whenでまとめればいい

memo : 학습하는 다른 예외 처리
async, await, Await in catch and finally blocks

좋은 웹페이지 즐겨찾기