74. 예외처리
.NET프로그래밍/C# 3.5 SP1 2009. 8. 17. 17:23 |// 예외(Exception) : 오류(Error)
// 컴파일(문법) 오류 : 잘못 타이핑, 잘못된 문법이면 Visual Studio가 바로 잡아준다.
// - 많이 타이핑, 많은 학습을 해야 한다.
// 런타임(실행) 오류 : 실행시 발생,
// - 많은 테스트를 해봐야 한다.
// 논리(잘못된분석?) 오류 : 잘못된 분석/설계/구현(오탈자) 등등
// - 많은 프로그램 작성 경험이 필요하다.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace 예외처리
{
class Program
{
static void Main(string[] args)
{
int a = 5;
int b = 0;
//int c = 5 / 0; // 컴파일에러
//int c = a / b; // 런타임에러 발생한다.
int c = a + b; // 논리상 나누기가 필요한데, 더하기(+)를 해버렸다?
Console.WriteLine("{0}", c);
ExceptionHandling();
}
private static void ExceptionHandling()
{
//int a = 5;
//int b = 0;
// try에서 예외발생 : [2] [3]번 코드 실행
// try에서 예외발생하지 않으면 : [3]번만 실행
try
{
//[1] 예외 발생할만한 구문 넣어놓는곳...
//int c = a / b; // 예외가 발생할만한 구문은 try절에...
//throw (new Exception("내가 만든 에러")); // 예외를 던지다(발생) ==> throw는 에러를 발생시키는 구문이다.
DivideByZeroException dbze = new DivideByZeroException("듀글래?");
throw dbze;
// 위의 2줄을 간단히 한줄로 throw new DivideByZeroException("듀글래?"); <== 이렇게 써도 된다.
}
catch (Exception ex)
{
//[2] 예외가 발생했을 때에만 실행됨
Console.WriteLine("예외발생 : {0}", ex.Message); // 메시지 출력
}
finally
{
//[3] 예외가 발생하던 안하던 실행
Console.WriteLine("프로그램을 정상 종료합니다.");
}
}
}
}
'.NET프로그래밍 > C# 3.5 SP1' 카테고리의 다른 글
76. 제네릭클래스 (0) | 2009.08.18 |
---|---|
75. 리스트제네릭클래스 (0) | 2009.08.17 |
73 . 연산자오버로드 (0) | 2009.08.17 |
72. 변환연산자 (0) | 2009.08.17 |
71. 반복기(Iterator) (0) | 2009.08.17 |