ランタイム (プログラムライフサイクルフェーズ)
プログラムを実行する場合、ローダは最初に必要なメモリセットアップを実行し、プログラムを必要なダイナミックリンクライブラリにリンクする。次に、プログラムのエントリーポイントから実行を開始する。場合によっては、言語または実装では、代わりに言語ランタイムによってこれらのタスクが実行されるが、これは一般的なコンシューマーオペレーティングシステムの主流言語では珍しいことである。
一部のプログラムのデバッグは、実行時にのみ実行できる(または、実行するとより効率的または正確になる)。論理エラーと配列境界チェックはひとつの例である。このため、高度なコンパイル時チェックとプレリリーステストにもかかわらず、プログラムが実際のデータを使用して実稼働環境でテストされるまで、一部のプログラミングバグは発見されない。この場合、エンドユーザーは「ランタイムエラー」メッセージを受け取る可能性がある。
例外処理は、ランタイムエラーを処理するように設計された言語機能のひとつであり、完全に予期しない状況だけでなく、予測可能なエラーや異常な結果を、それがない言語に必要なインラインエラーチェックの量なしでキャッチする構造化された方法を提供する。ランタイムエンジンの最近の進歩により、特別なソフトウェア製品をランタイムエンジンに接続することにより、対象となるすべての例外の「根本原因」デバッグ情報を提供し、ソースコードとは独立して実装される自動例外処理が可能となる。