草庐IT

try-catch-rethrow

全部标签

c++ - 调试 C++ 代码 : Catch first NaN appearance

这个问题在这里已经有了答案:StoppingthedebuggerwhenaNaNfloatingpointnumberisproduced(1个回答)关闭6年前。是否有一种简单的方法可以在调试器中检查C++代码是否首次出现NaN值?

c++ - catch (...) 是否在 throw 上工作;没有对象?

当没有待处理的异常在堆栈的上层处理时,C++标准对以下代码应该如何处理?try{throw;}catch(...){cerr空投会不会被接住? 最佳答案 来自2003C++标准§15.1[except.throw]/8:Ifnoexceptionispresentlybeinghandled,executingathrow-expressionwithnooperandcallsterminate().因此,在您的示例中,由于当前未处理任何异常,因此不会抛出任何内容,而是调用terminate()。由于terminate()没有返回

c++ - std::tr1::shared_ptr 是否会抛出 bad_alloc 并且在 try/catch block 中是个好主意?

我实际上正在制作一个简单的C++SFML游戏,我想学习更多关于C++编程的知识。现在我正在使用shared_ptr来管理资源。创建新资源时,我对shared_ptrs有一些疑问,例如:shared_ptrresource(newResource(World::LEVEL));根据boostshared_ptr(Y*p)throwsbad_alloc。我不知道std::tr1是否也这样做。而且我不知道我是否应该担心将shared_ptr放入try/catchblock中以检查是否抛出bad_alloc。这是一个好的编程习惯吗? 最佳答案

c++ - 错误 : expected primary-expression before ‘>’ : templated function that try to uses a template method of the class for which is templated

这个问题在这里已经有了答案:WhereandwhydoIhavetoputthe"template"and"typename"keywords?(8个答案)关闭8年前。在使用模板和仿函数(未出现在这个问题中)时,我最终遇到了以下简化的问题。以下代码(也可用here)classA{public:templateboolisGood(intin)const{constTf;returninbooltryEvaluator(T&evaluator,intvalue){returnevaluator.isGood(value);}intmain(intargc,constchar*argv[]

c++ - catch(...) 与 catch(CException *) 之间有什么区别?

CException是VC++抛出的所有异常的基类型,所以它应该捕获所有的异常吧? 最佳答案 CException不是所有扩展的基类型(它可能是MFC代码使用的所有异常的基类型,但仅此而已)。在C++中,你可以抛出任何东西;它不必是“异常”子类,甚至不必是对象。例如写throw42;是完全合法的或thrownewstd::vector();区别很明显:catch(CException)将只捕获抛出的CException实例及其子类,而另一个会捕获任何东西。 关于c++-catch(...

c - 在 C 中尝试 catch 语句

我今天在想其他语言中存在的try/catchblock。用谷歌搜索了一段时间,但没有结果。据我所知,C中没有try/catch这样的东西。但是,有没有办法“模拟”它们?当然,有assert和其他技巧,但没有像try/catch那样也能捕获引发的异常。谢谢 最佳答案 C本身不支持异常,但您可以使用setjmp和longjmp调用在一定程度上模拟它们。staticjmp_bufs_jumpBuffer;voidExample(){if(setjmp(s_jumpBuffer)){//Thelongjmpwasexecutedandret

c++ - 我可以写一个类似于缩写函数模板的 catch 子句吗?

在我的程序的顶部,我有一个异常处理程序。它看起来像这样:try{//majorityofprogram}catch(...){Handle_All_Exceptions();}voidHandle_All_Exceptions(){try{throw;}catch(TypeAconst&e){Handle(e);}catch(TypeBconst&e){Handle(e);}catch(TypeCconst&e){Handle(e);}catch(TypeDconst&e){Handle(e);}catch(...){Handle_Unknown();}}voidHandle(Type

【原文链接】Tri-Perspective View for Vision-Based 3D Semantic Occupancy Prediction

原文链接:https://openaccess.thecvf.com/content/CVPR2023/papers/Huang_Tri-Perspective_View_for_Vision-Based_3D_Semantic_Occupancy_Prediction_CVPR_2023_paper.pdf1.引言体素表达需要较大的计算量和特别的技巧(如稀疏卷积),BEV表达难以使用平面特征编码所有3D结构。本文提出三视图(TPV)表达3D场景。为得到空间中一个点的特征,首先将其投影到三视图平面上,使用双线性插值获取各投影点的特征。然后对3个投影点特征进行求和,得到3D点的综合特征。这样,可

c++ - Try-catch 在共享库中不起作用?

(这类似于myotherquestion但这是另一回事,即使它是相关的)我的项目中遇到了一个大问题。我有一个处理XML并可以抛出异常的库。并且,使用它来创建配置文件类显示了我的第一个错误:库中根本没有处理异常,每个异常都没有处理。在我写的库中:try{throwstd::exception();}catch(...){printf("caught\n");}但是,异常没有被处理并立即调用std::terminate:terminatecalledafterthrowinganinstanceof'std::exception'what():std::exception编译标志是最简单的

c++ - 在现代 C++ 中使用 try..catch block 通过模板元编程包装任意函数调用

我想创建一些模板,基本上应该包装它的参数。参数应该是一个任意的函数调用,它通过一些带有前缀和后缀代码的模板元编程魔法被包装。我想像下面这样使用它:autoresult=try_call(some_vector.at(13));和try_call将以某种方式定义,它将try..catchblock包装在some_vector.at(13)周围。像这样:template//sometemplatemetaprogrammingmagicheretry{autovalue=//executetheparameterhere,i.e.some_vector.at(13);returnstd::