C言語開発での例外処理

連載記事:アプリケーション開発技術 第8回

JavaとかC++開発者にとっては例外処理(try-catch)は常識というか必然です。 しかし、開発要員の確保から業務アプリケーションのバッチ処理をC言語で実装する場合も少なくありません。あるいはC++での開発の方が稀なのではないでしょうか。

C言語の場合エラー処理といえば、 「関数引数あるいは戻値にエラーコードを定義し、処理結果をif文で判定、上位ルーチンに戻す。」となります。

Java、C++の例外ハンドリングの扱いやすさに慣れると、C言語処理でも同様の例外ハンドリングを使えないのかと考える方も多いのではないでしょうか。

マクロとC標準関数を組合せることで擬似的にtry-catch&throwと同等のエラーハンドリングは実装可能です。

TRY
// 処理 エラー発生時は例外をスローする関数呼び出しthrow(例外識別子)
CATCH(識別子A)
// エラーAの処理
CATCH(識別子B)
// エラーBの処理
END_CATCH
END_TRY

といったマクロを利用したコーディングとなります。

原理的なことが理解できるレベルのCマクロを公開します。

ダウンロード

(ZIP形式:1.35KB)

前の記事

業務アプリケーションの数値計算

次の記事

C言語用バッチ処理フレームワーク