개념정리 5에서 이어집니다.
2024.09.27 - [C#/기초] - C# 개념 정리 5 / 인터페이스, 열거형, 델리게이트, 이벤트, 람다, 제너릭, Func, Action, Predicate / 면접 대비
예외 처리
프로그램 실행 중에 발생하는 예기치 않은 오류를 관리하기 위한 방법
네 가지의 키워드
try - catch,
finally,
Throw,
사용자 정의 예외
를 통해 예외를 처리할 수 있다.
Try - Catch
Try 블록 내 예외가 발생할 수 있는 코드를 작성하고, catch에서 이를 처리한다.
catch 블록은 위에서부터 순서대로 실행되며,
상속 관계에 있는 경우 상위 예외 타입의 catch 먼저 실행한다.
Finally
예외 발생 여부와 관계없이 항상 실행되는 코드 블록
코드 블록 = 특정한 동작을 위해서 코드가 모여 있는 상태, 보통 {}단위를 말함.
Throw
직접 예외를 발생시킬 때 사용한다.
Throw ex 랑 Throw에 대한 자세한 예시 및 설명은 아래 블로그 링크로 대체.
https://dev-junwoo.tistory.com/96
[C#] re-throw? 그리고 throw vs throw EX
Rethrow? try - catch 를 책으로 공부하고 이런저런 예제 코드들을 보면서 try절의 코드블록 안에서 throw new Exception 을 하는것이 아닌 , catch 안에서 throw를 하는 코드들을 봤었다. try { //실행할 코드 } cat
dev-junwoo.tistory.com
사용자 정의 예외
Exception 클래스를 상속받아 사용자가 직접 정의하여 예외 처리를 한다.
자주 사용되는 예외 유형들 :
FormatException : 입력 형식이 잘못된 경우
DivideByZeroException : 0으로 나누려고 할 때 오류
FileNotFoundException : 파일을 찾을 수 없을 때
그 외에도
ArgumentException, ArgumentNullException, ArgumentOutOfRangeException, ArithmeticException,
OverflowException, IndexOutOfRangeException, InvalidCastException, InvalidOperationException, IOEndOfStreamException, NullReferenceException, OutOfMemoryException, StackOverflowException 등이 있다.
static void Main()
{
try
{
// 잠재적으로 예외를 발생시킬 수 있는 코드
Console.Write("숫자를 입력하세요: ");
int number = int.Parse(Console.ReadLine());
int result = 100 / number;
Console.WriteLine($"100 / {number} = {result}");
// 파일 읽기 시도
string content = File.ReadAllText("nonexistent.txt");
}
catch (FormatException ex)
{
Console.WriteLine($"입력 형식이 잘못되었습니다: {ex.Message}");
}
catch (DivideByZeroException ex)
{
Console.WriteLine($"0으로 나눌 수 없습니다: {ex.Message}");
}
catch (FileNotFoundException ex)
{
Console.WriteLine($"파일을 찾을 수 없습니다: {ex.Message}");
}
catch (Exception ex)
{
Console.WriteLine($"예상치 못한 오류가 발생했습니다: {ex.Message}");
}
finally
{
Console.WriteLine("이 블록은 항상 실행됩니다.");
}
Console.WriteLine("프로그램이 정상적으로 종료되었습니다.");
}
소멸자(destructor)의 작동 원리가 예외처리의 응용
소멸자를 정의하면, C# 컴파일러는 이를 내부적으로 Finalize 메서드의 오버라이드로 변환하여 처리한다.
protected override void Finalize()
{
try
{
// 소멸자에 작성한 코드
}
finally
{
base.Finalize();
}
}
LINQ(language Integrated Query)
데이터 소스에서 데이터를 검색하는 식
구조
var : 결과 값의 자료형을 자동으로 추론.
from : 데이터 소스를 지정
where : 선택적으로 사용, 조건식을 지정하여 데이터를 필터링
orderby : 선택적으로 사용하며, 정렬 방식을 지정.
select : 선택적으로 사용하며, 조회할 데이터를 지정.
짝수만 필터링 하는 예시
int[] numbers = [ 0, 1, 2, 3, 4, 5, 6 ];
// numQuery is an IEnumerable<int>
var numQuery =
from num in numbers
where (num % 2) == 0
select num;
foreach (int num in numQuery)
{
Console.Write("{0,1} ", num);
}
https://learn.microsoft.com/ko-kr/dotnet/csharp/linq/get-started/introduction-to-linq-queries
참고하면 좋을 내용
https://www.php.cn/ko/faq/360233.html
125가지 기본 C# 인터뷰 질문 및 답변 공유-C#.Net 튜토리얼-php.cn
이 문서는 125개의 기본 C# 인터뷰 질문과 답변 목록입니다. 이러한 인터뷰 질문은 간단하고 직설적이며 C#의 가장 기본적인 개념을 다루고 있으며, 그 중 대부분은 개체 지향 개념과 관련되어 있
www.php.cn
https://www.guru99.com/ko/c-sharp-interview-questions.html
상위 50개 C# 인터뷰 질문 및 답변(2024)
신입생 및 경력자를 위한 C# 인터뷰 질문: 다음은 신입생 및 2/3/5/10년 경력 전문가를 위한 기본부터 고급 C# 인터뷰 질문과 답변 목록입니다.
www.guru99.com
https://shypang.tistory.com/16
C# 해외 면접시 TOP50
가장 인기있는 C # 인터뷰 질문 및 답변기본 개념에 대한 질문Q # 1) 객체와 클래스 란 무엇입니까?Ans : 클래스는 실시간 엔터티를 나타내는 데 사용되는 속성 및 메서드의 캡슐화입니다. 모든 인
shypang.tistory.com
'C# > 기초' 카테고리의 다른 글
C# 개념 정리 5 / 인터페이스, 열거형, 델리게이트, 이벤트, 람다, 제너릭, Func, Action, Predicate / 면접 대비 (1) | 2024.09.27 |
---|---|
C# 개념 정리 4/ 상속, 다형성, out, ref / 면접 질문 대비 (0) | 2024.09.25 |
C# - 개념 정리 3 / 메서드, 구조체, 객체, 클래스, 프로퍼티 / 면접 질문 대비 (0) | 2024.09.24 |
C# - 개념 정리 2 / 변수, 코드 컨벤션 , 배열, 컬렉션, 박싱 & 언박싱 / 면접 질문 대비 (0) | 2024.09.23 |
C# - 개념 정리 1 / C# 정의 및 특징 , GC , Dispose, 네임 스페이스, 값 참조 형식, Nullable , 주석 / 면접 질문 대비 (1) | 2024.09.20 |