我正在尝试创建一个python函数,它将根据用户输入执行C ++脚本。该函数替换C ++文件中的某些行,然后在python上执行它。每当C ++文件中替换的行语法错误时,就会出现无效语法错误。在这种情况下,我希望函数返回-1,而不是仅代表用户崩溃或混淆错误的语法/输入。
我试过了:
在python函数中运行try catch语句
在C ++代码中运行try catch语句
运行带有try catch的bash脚本以进行编译错误
尽管如此,这些选项都没有奏效。任何人?
答案 0 :(得分:0)
您是否尝试过使用subprocess.check_output而不仅仅是检查呼叫?
https://docs.python.org/2/library/subprocess.html#subprocess.check_output 如果clang ++无法正确执行,这似乎会引发异常,这意味着构建错误。
抱歉,NOOb也无法发表评论。
答案 1 :(得分:0)
您需要在无效代码编译时检查clang ++的返回值。如果无法通过返回值判断,则可能必须解析clang ++的输出。
要在终端中检查返回值(假设是bash): clang ++ valid_file.cpp
echo $?
clang ++ invalid_file.cpp
echo $?