ページの先頭行へ戻る
Interstage Shunsaku Data Manager アプリケーション開発ガイド

10.3.5 エラー発生時の対処

.NET APIは、エラーの内容によって発生する例外が異なります。キャッチする例外を切り分けて、発生した例外ごとに処理することが可能です。.NET APIがスローする例外は、主に.NET APIの例外と、それ以外の一般的な例外があります。以下に、.NET APIの例外の継承関係と、例外の意味について説明します。


図10.16 .NET APIの例外クラスの継承関係


表10.16 .NET APIの例外一覧

例外

意味

ShunException

Shunsakuの例外クラスすべての基底クラスです。
Shunsaku独自のエラーをすべてキャッチしたいときに使用します。

ShunConnectionTerminatedException

Shunsakuとの接続が強制切断されたときにスローされる例外です。コネクションの確立から再実行してください。

ShunTimeoutException

Shunsakuとの接続がタイムアウトにより強制切断されたときにスローされる例外です。コネクションの確立から再実行してください。

ShunTransactionRolledbackException

トランザクションがキャンセルされたときにスローされる例外です。トランザクションの開始点から再実行してください。

ShunContinuousException

警告レベルのエラーが発生したときにスローされる例外です。エラーの原因を取り除き、エラーの発生箇所から再実行してください。

ShunAPIConfigException

API用動作環境ファイルに誤りがあります。エラーの原因を取り除き、再実行してください。

ShunSystemException

想定外のエラーが発生した場合にスローされる例外です。エラーメッセージを取得し、当社技術員(SE)に連絡してください。

参照

各メソッドでスローされる例外の詳細は、“.NET API リファレンス”を参照してください。


C# .NETの記述例

try {
  :
}
catch ( ShunContinuousException e ) {
  // ShunContinuousExceptionが発生した場合の処理を記述
  try {
    if ( service != null ) {
      if ( service.State == ShunConnectionState.Open ) {
        if ( !service.AutoCommit ) { service.Rollback(); }
        service.Disconnect();
      }
    }
  }
  catch( ShunException ex ) {
    Console.WriteLine( "エラーメッセージ : " + ex.Message );               (1)
  }
  Console.WriteLine( "エラーメッセージ : " + e.Message );
}
catch ( ShunTransactionRolledbackException e ) {
  // ShunTransactionRolledbackExceptionが発生した場合の処理を記述
  try {
    if( service != null ) {
      if( service.State == ShunConnectionState.Open ) {
         service.Disconnect();
      }
    }
  }
  catch( ShunException ex ) {
    Console.WriteLine( "エラーメッセージ : " + ex.Message );
  }
  Console.WriteLine( "エラーメッセージ : " + e.Message );
}
catch (ShunConnectionTerminatedException e ) {
  // ShunConnectionTerminatedExceptionが発生した場合の処理を記述
  Console.WriteLine( "エラーメッセージ : " + e.Message );
}

VB .NETの記述例

Try
  :
Catch e As ShunContinuousException
  ' ShunContinuousExceptionが発生した場合の処理を記述
  Try
    If Not service Is Nothing Then
      If service.State = ShunConnectionState.Open Then
         If Not service.AutoCommit Then
           service.Rollback()
         End If
         service.Disconnect()
      End If
    End If
  Catch ex As ShunException
    Console.WriteLine( "エラーメッセージ : " + ex.Message )               (1)
  End Try
  Console.WriteLine( "エラーメッセージ : " + e.Message )

Catch e As ShunTransactionRolledbackException
  ' ShunTransactionRolledbackExceptionが発生した場合の処理を記述
  Try
    If Not service Is Nothing Then
      If service.State = ShunConnectionState.Open Then
         service.Disconnect()
      End If
    End If
  Catch ex As ShunException
    Console.WriteLine( "エラーメッセージ : " + ex.Message )
  End Try
  Console.WriteLine( "エラーメッセージ : " + e.Message )

Catch e As ShunConnectionTerminatedException
  ' ShunConnectionTerminatedExceptionが発生した場合の処理を記述
  Console.WriteLine( "エラーメッセージ : " + e.Message )

End Try

(1) エラーメッセージ

Messgaeプロパティを使用することで、エラーメッセージを取得することができます。

エラーメッセージの詳細は、“メッセージ集”の“API実行時に出力されるメッセージ”を参照してください。