프로그램을 짜다 보면 오류로 인해 프로그램이 크래쉬(죽게)된다. 오류가 나더라도 정상 동작하게 끔 바꾸어 주는 것이 예외 처리이다. try catch는 예외 처리하는 방법 중에 하나이고 catch 부분에 모든 오류를 다 출력 시킬 수도 있고 특정 오류만 들어오게 코드를 짤 수도 있다. 아래의 예제는 0으로 나눴을 때 발생하는 오류가 catch 문에 들어오게 되고 b의 값을 1로 수정하여 최종적으로 오류를 잡게 되는 코드이다.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using System; // Exception을 사용하기 위해 선언
public class Test : MonoBehaviour
{
int a = 5;
int b = 0;
int c;
void Start()
{
// 컴퓨터는 0으로 나누면 오류가 발생한다.
// 이 상태에서는 크래쉬가 나서 프로그램이 종료하게 된다.
// c = a / b;
// 오류가 발생 하더라도 프로그램이 죽지 않게 예외 처리를 하면 아래와 같다.
try
{
c = a / b;
}
// Exception으로 하면 모든 오류를 잡아낸다.
// DivideByZeroException으로 하면 0으로 나눈 오류만 잡아내게 된다.
// catch는 여러게를 쓸수도 있다.
catch(DivideByZeroException ie)
{
print(ie);
b = 1;
c = a / b;
}
// 오류가 발생하든 말든 최종적으로 출력된다.
finally
{
print(c);
}
}
}
또한 프로그램 로직에는 오류가 없지만 일부러 코드를 통해 오류를 발생 시킬 수도 있다. 게임이라고 생각해보자 유저의 이상 행동이 감지가 되면 오류를 발생 시키고 프로그램을 끝내도록 유도하면 될거 같다.또한 프로그램 로직에는 오류가 없지만 일부러 코드를 통해 오류를 발생시킬 수도 있다. 게임이라고 생각해보자 유저의 이상 행동이 감지가 되면 오류를 발생시키고 프로그램을 끝내도록 유도하면 될 거 같다.
throw new Exception("일부러 오류를 발생한다.");
'프로그래밍 언어 > C#' 카테고리의 다른 글
C# 코루틴 (0) | 2019.12.05 |
---|---|
C# Action과 Func (0) | 2019.12.05 |
C# 람다식 (0) | 2019.12.05 |
C# 형식 매개변수 T (0) | 2019.12.05 |
C# 인덱서 (0) | 2019.12.05 |