このコード スニペットを取得しました (プログラム全体が正しくコンパイルおよびリンクされます)。
...
try
{
boost::python::exec_file(
"myscript.py", // this file contains a syntax error
my_main_namespace,
my_local_namespace
);
return true;
}
catch(const boost::python::error_already_set &)
{
PyObject *ptype, *pvalue, *ptraceback;
PyErr_Fetch(&ptype, &pvalue, &ptraceback);
// the next line crashes on syntax error
std::string error = boost::python::extract<std::string>(pvalue);
...
}
プログラムが実行しようとするファイルに構文エラーがあるため、例外がスローされます。プログラムがエラー メッセージを取得しようとすると、クラッシュします...
このコードは実行時エラーには問題なく機能しますが、何らかの理由で構文エラーでクラッシュします。
この種のエラーでエラー文字列を取得するにはどうすればよいですか?
前もって感謝します