31. 예외필터(Exception Filter)
·
💻 Programming Language/C#
Exception Filter : catch절이 받아들일 예외 객체에 제약사항을 주고 그 사항에 만족하는 경우에 예외 처리를 실행할 수 있도록 하는 기능 catch문 뒤에 when 키워드를 이용. 사용자 정의 예외 클래스 모든 예외 객체는 System.Exception 클래스로부터 파생된다. 사용자 정의 예외 클래스를 만들때도 역시 System.Exception 클래스를 상속받아서 만든다. 사용 예제 코드 using System.Collections; namespace ExceptionEx { // 사용자 정의 예외 클래스 class UserException : Exception { public int ErrorCode { get; set; } } class Program { static void Mai..
30. C# 7.0에서 throw문 표현식, finally 절
·
💻 Programming Language/C#
C# 7.0에서의 throw문의 표현식(Expression) using System.Collections; //c# 7.0에서의 throw문의 표현식(Expression) namespace ExceptionEx { class Program { static void Main(string[] args) { try { int? aa = null; int bb = aa ?? throw new ArgumentNullException(); } catch (ArgumentNullException e) { Console.WriteLine(e.Message); } try { int[] arr = {1, 2, 3 }; int idx = 5; int value = arr[idx >= 0 && idx < 4 ? idx : t..
29. System.Exception클래스, throw문
·
💻 Programming Language/C#
System.Exception 클래스는 모든 Exception의 Base클래스이다. 모든 Exception들은 System.Exception 클래스를 상속받는다. 앞서 사용했던 IndexOutOfRangeException 예외 클래스도 System.Exception으로부터 파생된 것 System.Exception을 이용해서 모든 예외사항을 처리하지 않는 이유 개발자가 예상하지 못했던 예외를 처리할 수는 있지만, 처리하지 않아도 될 예외까지 모두 처리를 함으로써 오류가 발생할 수 있기 때문에 System.Exception을 사용하는 것은 신중하게 고려해야한다. throw문 형식 try { throw new Exception("예외를 던짐"); } catch(Exception e) { Console.Writ..
29-1. Null 병합 연산자(Null Operator)
·
💻 Programming Language/C#
? : Nullable 타입을 선언할 때 사용하는 연산자 ?? 널(Null) 병합 연산자 a ?? 100 에서 a 값이 null이면 100을 리턴하고, a가 null이 아니면 a의 본래값을 리턴한다. 값이 null이 되는 것을 막기위해 사용하는 듯하다. (개인적인 의견) namespace NullOperatorEx { class Program { static void Main(string[] args) { int? bb = null; Console.WriteLine($"{bb ?? 10}"); bb = 12; Console.WriteLine($"{bb ?? 10}"); string str1 = null; // string 타입은 nullable이 가능하기에 따로 nullable연산자(`?`)가 붙지 않아..
28. 예외처리(Exception Handling)
·
💻 Programming Language/C#
예외 처리 구문(try - catch) try{ // 실행코드 } catch(Exception 객체1){ // 어떤 예외가 발생했을때 처리 코드 } catch(Exception 객체2){ // catch문은 여러개가 올 수 있다. } ... Ex - 기존 예외 발생 코드 namespace ExceptionEx { class Program { static void Main(string[] args) { int[] array = {1,2,3,4,5}; for(int i = 0; i < 6; i++) { Console.WriteLine(array[i]); } Console.WriteLine("프로그램 종료!!"); } } } Output 1 2 3 4 5 Unhandled exception. System.In..