728x90
반응형
c#은 예외상황이 발생하면 스스로 에러 메시지를 발생하고 프로그램이 죽어버립니다.
하지만, 유니티는 Start 문에서 예외가 발생하면 더 이상 Start 문을 실행하지 않고 Update문으로 넘어가고, Update에서 예외가 발생하면 Update 문의 예외 아래 실행문은 실행하지 않고 다음 Update 문으로 넘어가게 됩니다.
하지만, 예외 처리를 사용하여 예외를 처리 할 수 있습니다.
1. try catch 문
try catch 문은 예외를 찾고, 그 예외가 발생할 경우 실행할 문을 넣는 기법입니다.
try 문에 실행 할 코드를 넣고, catch 문에 예외가 발행했을 때 처리하는 실행문을 넣으면 됩니다.
try catch 문에서 Exception 변수를 사용하기 위해서는 using 문을 사용하여 system 네임스페이스를 선언하여합니다.
사용 방법 : try catch 문 |
using system; try { 실행문 } catch(예외-객체) { 예외-발생-시-실행되는 문 } |
using UnityEngine;
using System;
public class TryCatchStatementExample : MonoBehaviour
{
GameObject go;
void Start()
{
//go = new GameObject();
try
{
Debug.Log(go.name); // go를 할당하지 않았기 때문에 예외가 발생합니다.
}
catch (Exception ex)
{
Debug.Log(ex); // 출력 : System.NullReferenceException: Object reference not set to an instance of an object
}
Debug.Log("여기도 실행됩니다."); // 출력 : 여기도 실행됩니다.
}
}
2. try finally 문
try finally 문은 예외를 찾고, 그 예외가 발생하더라고 finally 문이 실행되는 기법입니다.
try 문에 실행할 코드를 넣고 finally 문에 반드시 실행되어야 하는 문을 넣습니다.
사용 방법 : try finally 문 |
try { 실행문 } finally { 예외가-발생하더라도-반드시-실행되는-문 } |
using UnityEngine;
public class TryFinallyStatementExample : MonoBehaviour
{
GameObject go;
void Start()
{
//go = new GameObject();
try
{
Debug.Log(go.name); // 에러가 발생합니다.
}
finally
{
Debug.Log("여기는 실행됩니다."); // 출력 : 여기는 실행됩니다.
}
Debug.Log("여기는 실행하지 않습니다."); // 여기는 실행하지 않습니다.
}
}
3. try catch finally 문
try catch finally 문은 try catch 문과 try finnaly 문을 합쳐서 사용하는 기법입니다.
사용 방법 : try catch finally 문 |
try { 실행문 } catch(예외-객체) { 예외-발생-시-실행되는-문 } finally { 예외가-발생하더라도-반드시-실행되는-문 } |
using UnityEngine;
using System;
public class TryCatchFinallyStatementExample : MonoBehaviour
{
GameObject go;
void Start()
{
//go = new GameObject();
try
{
Debug.Log(go.name);
}
catch (Exception ex)
{
Debug.Log(ex); // 출력 : System.NullReferenceException: Object reference not set to an instance of an object
}
finally
{
Debug.Log("여기도 실행됩니다."); // 출력 : 여기도 실행됩니다.
}
Debug.Log("여기도 실행됩니다."); // 출력 : 여기도 실행됩니다.
}
}
4. throw 문
throw 문은 프로그램 실행 중 예외 발생 신호를 보냅니다.
using UnityEngine;
using System;
public class ThrowStatementExample : MonoBehaviour
{
void Start()
{
throw new Exception("임의로 만든 예외입니다."); // 에러 발생. 출력 : Exception: 임의로 만든 예외입니다.
}
}
728x90
반응형
'프로그램 > 유니티 C# 강좌' 카테고리의 다른 글
[유니티 C# 강좌] 13. 클래스(Class) (2) | 2020.01.29 |
---|---|
[유니티 C# 강좌] 12. 네임스페이스(Namespaces), using 문 (0) | 2019.11.29 |
[유니티 C# 강좌] 10. 점프문(Jump Statement) (0) | 2019.11.24 |
[유니티 C# 강좌] 9. 반복문(Repetitive Statement) (1) | 2019.11.24 |
[유니티 C# 강좌] 8. 문(Statement), 조건문(Conditional Statement) (0) | 2019.11.14 |