草庐IT

cpp_exceptions_handling

全部标签

c++ - 捕捉 c++ "Access Violation Writing Exception"?

在我的C++代码中,我有一个代码块,当用户输入无效时会出现“访问冲突写入位置...”异常。我试图在我的try/catchblock中捕获此异常以在异常发生时显示错误消息..但由于某种原因它没有捕获错误。try{//...somecodethatcausesAccessViolationWritingLocationException}catch(...){std::cout我这样做了,但是当异常发生时,控制台没有显示我的错误信息,而是说有一个Unhandledexceptionat0x0F0B0E9A(msvcr110d.dll)inExample.exe:Accessviolatio

c++ - 在 CPP 中制作 vector 三元组的简单方法

在CPP中构造整数vector三元组的简单方法是什么?即不是一对2整数,std::vector>vec;我想将3个整数捆绑在一起作为vector的一个元素。我意识到一种方法是制作2个子嵌套对,但这种方法变得困惑。我不了解CPP的所有细节,因此请推荐一种更简单的方法(如果可用)。谢谢。 最佳答案 std::vector>myvec; 关于c++-在CPP中制作vector三元组的简单方法,我们在StackOverflow上找到一个类似的问题: https://s

c++ - SPARC : How to handle integer doubleword pairs? 的 GCC 内联汇编

据我了解,在SPARC中,32位整数存储在单个寄存器中,64位整数存储在相邻的寄存器对中,偶数寄存器包含高32位,奇数寄存器包含低位32位。我需要编写一些专门的SPARC内联汇编宏(内联汇编函数也可以)来处理64位整数双字对,但我不知道如何进行通用引用(使用GCC扩展内联汇编)到我的内联汇编中这对的两半。虽然我的汇编宏比下面显示的MULTIPLY()宏稍微复杂一点,但乘法示例(如果有效)将演示如何处理64位双字对的两半。谁能告诉我如何修复我的MULTIPLY()宏?以防万一,我在...bash-2.03$uname-aSunOS[...]5.8Generic_117350-39sun4

c++ - 为什么 "dynamic exception"保证会导致开销?

在C++11中,这已被弃用:voidfoo()throw();并替换为voidfoo()noexcept;在thisarticle据解释,这样做的原因(除其他外,归结为同一件事)是C++exceptionspecificationsarecheckedatruntimeratherthanatcompiletime,sotheyoffernoprogrammerguaranteesthatallexceptionshavebeenhandled.虽然这对我来说确实有意义,但我不明白为什么首先要动态检查throw(),或者为什么noexcept不提供异常保证除了调用std::termin

c++ - 为什么 regex_match 抛出 "complexity exception"?

我正在尝试测试(使用boost::regex)文件中的一行是否仅包含由空格分隔的数字条目。我遇到了一个我不明白的异常(见下文)。如果有人能解释为什么抛出它,那就太好了。也许我在这里以定义模式的方式做了一些愚蠢的事情?这是代码://regex_test.cpp#include#include#includeusingnamespacestd;usingnamespaceboost;intmain(){//Mybasicpatterntotestforasinglenumericexpressionconststringnumeric_value_pattern="(?:-|\\+)?[[

c++ - 是否所有官方 Qt 二进制文件都使用 -no-exceptions 构建?

如果我写try{throwstd::exception("Exception");}catch(std::exception&ex){qDebug("GameOver");}在我的主函数(或其他任何地方)中,我的Qt应用程序崩溃了。Exceptionhandlingdoesn'tworkwithQtonWindows中描述了这种效果(5年前).原来的发布者显然通过自己重新配置和重建QtSDK(显式启用-exceptions)解决了这个问题,但我很难相信所有Qt二进制文件都关闭了异常并且每个使用异常的人都必须这样做。谁能告诉我这是记录在案的地方,告诉我这是真的还是我在这里做错了什么?我现

c++ - NUMA 感知 Cpp 容器

有没有方便有效的方式以NUMA感知方式使用cpp标准容器API?我想在cpp环境中执行OpenMP并行稀疏矩阵vector乘法。要分配和初始化与NUMA域有关的vector和矩阵值,C代码看起来像这样:size_tN=1000000;double*vecVal=malloc(N*sizeof(double));#pragmaOMPparallelforfor(size_i=0;i在Cpp中,我想使用std::vector(固定大小的std::array也可以)。std::vector::reserve()能解决问题吗?这样做是否合法:std::vectorvec;vec.reserve

【错误解决】requests.exceptions.SSLError:wrong version number (_ssl.c:1131)

错误解决:requests.exceptions.SSLError:wrongversionnumber(_ssl.c:1131)requests.exceptions.SSLError:HTTPSConnectionPool(host=‘192.168.79.128’,port=8080):Maxretriesexceededwithurl:/admin/login(CausedbySSLError(SSLError(1,‘[SSL:WRONG_VERSION_NUMBER]wrongversionnumber(_ssl.c:1131)’)))尝试1:进入电脑的“网络和Internet“设置

c++ - 让 Visual Studio 中断用户(std::exception)异常?

我的代码抛出未处理的异常,但VisualStudio中的调试器只中断系统抛出的异常。例如,getaddrinfo的返回值不为零,我的异常应该首先抛出-事实上,如果我在第171行放置一个断点,它会被命中-但调试器只在调用socket时中断。我知道Ihavetoaddmyowntypesexplicitly,orelsecheckAllC++Exceptionsnotinthislist,在ExceptionSettings中,但这是我抛出的std::exception,而std::exception是检查过。如何让VisualStudio调试器在出现异常时自动中断?

c++ - header 中的 private static const 成员变量与 cpp 中的 const 变量

为什么我应该在header中声明一个私有(private)的staticconst变量(并在cpp中初始化它)而不是仅仅在cpp中定义+声明它?即案例1.hclassMyClass{...private:staticconstMyTypesome_constant;}case1.cppconstMyTypeMyClass::some_constant=...;案例2.h//Nomentionofsome_constantatall案例2.cppconstMyTypesome_constant=...;假设遵循常见的c++约定(1个header和cpp仅与1个类相关联,从不与#inclu