例外の使い方が正しいのか知りたいです。
以下のようにruntime_errorで例外送出したのですが、場合によって処理を分けたい場合がよくあります。
cpp
1#include <iostream> 2#include <fstream> 3#include <string> 4 5using namespace std; 6 7 8auto file_write(string file) 9{ 10 ofstream ofs(file); 11 12 if (ofs.fail()) throw runtime_error("ファイルオープンに失敗しました"); 13 14 ofs << "ok" << endl; 15} 16 17auto in_check(int number) 18{ 19 if (number > 50) throw runtime_error("数値が不正です"); 20} 21 22int main() 23{ 24 try { 25 file_write("sample.txt"); 26 } 27 catch (runtime_error& msg) 28 { 29 cout << msg.what() << endl; 30 return; 31 } 32 33 int n; 34 try { 35 cin >> n; 36 in_check(n); 37 } 38 catch (runtime_error& msg) 39 { 40 cout << msg.what() << endl; 41 n = 0; 42 } 43}
こういった場合上記のように処理をちょくちょく分けているのですが、これは冗長でしょうか?
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。