クローズ処理を忘れるな
オープン・クローズが必要な処理
- ファイル処理
- 通信処理
- DB処理
FileOpen | FileClose | ファイルのオープン |
SktUDPCreate | SktClose | UDPソケットのクリエイト |
SktTCPAccept | SktClose | TCP(Server)のアクセプト |
SktTCPConnect | SktClose | TCP(Client)のコネクト |
CIPOpen | CIPClose | CIP(Class3)コネクション |
DB_Connect | DB_Close | データベース接続 |
クローズ処理で気を付けなければいけないところ
オープン(Connectなどを含め)したら必ずクローズしなければいけません
正常処理時にクローズ処理をするのはもちろんのこと、様々な異常時にも必ずクローズ処理をする必要があるのですが、想定外の異常を見逃さないように注意します
また、処理完了のタイミングはクローズの指示で終了ではなくて、クローズの完了が処理完了として次の処理はクローズ完了後に実行するようにします
プログラム例
下図はOpen→Write→Closeの例です

ポイント
FileWrite.ErrorでもFileCloseします
NormalEnd(正常終了)を作ってClose完了を待ってから全ての処理を終了とします
任意の処理には以下の種類の命令があります
下図はSktTCPConnect→SktTCPSend→SktTCPRcv→Closeの例です

ポイント
SktTcpSend.ErrorとSktTcpRcv.ErrorでもSktCloseします
NormalEnd(正常終了)を作ってClose完了を待ってから全ての処理を終了とします
任意の処理には以下の種類の命令があります
下図はDB_Connect→DB_CreateMapping→DB_Insert→DB_Closeの例です

ポイント
DB_CreateMapping.ErrorとDB_Insert.ErrorでもSktCloseします
NormalEnd(正常終了)を作ってClose完了を待ってから全ての処理を終了とします
プログラム例は最低限の処理のみ書いているため説明以外の異常処理は考慮していません