예외 처리(Exception Handling)


NullReferenceException: 
오브젝트를 참조하지 않는 변수에 접근하려고 할 때 발생합니다 
가장 흔함
값이 없다는 거임

DivideByZeroException: 
0으로 나누는 연산을 시도할 때 발생합니다.

IndexOutOfRangeException: 
배열이나 컬렉션의 유효하지 않은 인덱스에 접근하려고 할 때 발생합니다.


C#에서는 try, catch, finally 키워드를 사용하여 예외를 처리합니다.


예외 처리를 해야 하는 이유

안정성: 
예외 발생 시 프로그램이 강제 종료되는 것을 막고, 
사용자에게 친절한 오류 메시지를 보여주거나 다른 방법으로 실행을 계속할 수 있도록 합니다.

디버깅: 
예외가 발생한 지점과 상황을 정확히 파악하여 문제를 해결하는 데 도움을 줍니다.

 

 

public GameObject targetObject;

void Start()
{
    // 예외 처리 대신 if문으로 Null 체크
    if (targetObject != null)
    {
        Debug.Log(targetObject.name);
    }
    else
    {
        Debug.LogError("Target Object가 할당되지 않았습니다.");
    }
}
// NullReferenceException 방지 예시

 

 


+

 

 

abc = 5/0 ; 
이런식으로 0 으로 나누면 컴퓨터에서 오류 뜸
이러면 게임이 튕김

try
{
abc = 5/0 ; 
}
catch(Exception)


이렇게 하면 예외 처리가 된 거임

Exception을 캐치 안에 넣으면 모든 오류를 무시하겠다는 말임

 

 

try
{
    // 예외 발생 가능성이 있는 코드
    int result = 10 / 0; 
}
catch (DivideByZeroException ie)
{
	 // 특정 예외 처리
    Debug.LogError("0으로 나눌 수 없습니다: " + ie.Message);
}
finally
{
	// 오류가 뜨던 말건 실행할 함수
    print(abc);
}

 

이렇게 캐치 안에 특정 오류를 콕 찝을 수 있음

 

 

finally 는 오류가 나던 말건 실행할 것을 의미함




 

 

 

반응형
Posted by 이름이 익명
: