C では、例外とログが重要なトラブルシューティング ツールです。例外処理は実行時エラー イベントを処理するために使用され、ログはプログラムの実行時情報を記録するために使用されます。実際の使用例では、例外とログを使用して、ファイル サイズを計算し、ファイルを開けない場合に例外をスローしてエラー メッセージを記録する関数のエラーを診断できます。
#C 関数の例外とログ: 包括的な障害診断
C プログラム開発では、例外とログが重要です。重要なトラブルシューティング ツールです。これらは、開発者がエラーを迅速に特定して処理するのに役立ちます。例外処理
例外は、実行時に発生するエラー イベントです。例外が発生すると、プログラムは実行を直ちに停止し、エラー情報を含む例外オブジェクトを返します。例外オブジェクトは、try-catch ステートメントを通じてキャッチして処理できます。
try { // 代码可能引发异常的地方 } catch (const std::exception& e) { // 处理异常的情况 }
ロギング
ロギングは、プログラムの実行時情報をファイルまたはデータベースに記録するためのメカニズムです。ログ メッセージには通常、タイムスタンプ、ログ レベル (INFO、WARN、ERROR など)、およびメッセージ テキストが含まれます。 次は、spdlog ライブラリを使用したログの例です。
#include "spdlog/spdlog.h" auto logger = spdlog::stdout_color_mt("my_logger"); logger->info("程序启动");
実用的なケース
次の例では、例外とロギングを使用して、ファイル サイズを計算する関数のバグを診断します。#include <iostream> #include <fstream> #include "spdlog/spdlog.h" using namespace std; // 计算文件大小的函数 size_t get_file_size(string filename) { ifstream file(filename, ios::binary); if (!file.is_open()) { throw std::runtime_error("无法打开文件: " + filename); } file.seekg(0, ios::end); return file.tellg(); } int main() { auto logger = spdlog::stdout_color_mt("my_logger"); while (true) { string filename; cout << "请输入文件名 (输入 q 退出): "; cin >> filename; if (filename == "q") break; try { size_t filesize = get_file_size(filename); cout << filename << " 的大小是: " << filesize << " 字节" << endl; } catch (const exception& e) { logger->error("计算文件大小时出错: {}", e.what()); } } return 0; }
runtime_error 例外がスローされ、エラー メッセージがログに記録されます。このようにして、開発者はファイルを開くエラーを迅速に特定し、適切な措置を講じることができます。
以上がC++ 関数の例外とログ: 包括的なトラブルシューティングの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。