[C#] 오라클 오류(예외) 캐치하여 프로그램 재시작 하기

자동으로 실행하는 프로그램을 만들었는데, 오라클 예외가 발생하였는데도 연결이 끊어진 상태로 계속 실행하는 문제가 발생하였어요. 그리하여 특정 오류가 발생하였을 때에는 프로그램을 재시작 하려고 합니다.

오류 코드 ORA-06508ORA-04068는 다음과 같은 상황에서 발생합니다:

  • ORA-06508: 호출 중인 PL/SQL 프로그램 단위를 찾을 수 없을 때 발생하는 오류입니다. 보통 패키지나 프로시저가 컴파일되지 않았거나, 접근할 수 없을 때 나타납니다.
  • ORA-04068: 패키지의 기존 상태가 버려졌을 때 발생하는 오류입니다. 보통 패키지의 상태가 손상되었거나 재컴파일되었을 때 발생합니다.
try
{
    //
}
catch (Exception ex)
{
    if (ex is OracleException oe)
    {
        if (oe.Code == 6508 || oe.Code == 4068)
        {
            //Program.Restart();
        }
    }
    throw ex;
}

위 코드에서 핵심은 OracleException의 코드가 6508 또는 4068일 때, 프로그램을 재실행하도록 하는 부분입니다. OracleException.Code 는 반환값이 정수형이기에 06508 같은 경우, 6508로 조건을 설정하면 된답니다.

댓글 쓰기
가져가실 때, 출처 표시 부탁드려요! 감사합니다. 💗