草庐IT

exception-specification

全部标签

ARMv8-AArch64 的异常处理模型详解之异常处理概述Handling exceptions

异常处理模型详解之异常处理概述一,异常处理相关概念二,异常处理概述一,异常处理相关概念在介绍异常处理之前,有必要了解一些关于异常处理状态的术语:当处理器响应一个异常时,我们称该异常被获取了(taken)。处理器响应异常之前的状态被称为takenfrom。处理器响应异常之后的状态被称为takento。因此,当处理器识别到异常时,此时处理器处于takenfrom。在异常之后的状态称为takento。当异常处理完成后,处理器需要返回到异常发生前的状态,这个过程称为exceptionreturn。并且在ARM架构中有专门的指令用于异常返回(ERET):处理器在执行异常返回指令之前的状态,称为retur

c++ - 'boost::exception_detail::clone_impl<boost::exception_detail::error_info_injector<boost::system::system_error>>

我创建了客户端应用程序。当我发送单个消息clientsever时它工作正常。但是当我出于性能目的发送大量消息时,客户端会以两种不同的方式崩溃:(gdb)runStartingprogram:/home/x64joxer/workerGenerators/Worker2/worker-t-i192.168.0.6-p6000-d5-l//home/x64joxer/workerGenerators/Worker2/[Threaddebuggingusinglibthread_dbenabled]Usinghostlibthread_dblibrary"/lib/x86_64-linux-

c++ - 来自 exception::what() 的异常描述是否标准化为标准异常?

对于像std::bad_alloc这样的标准化异常,exception::what()返回的字符串在不同的编译器中是否应该相同?例如,我使用过的几个编译器都会为bad_alloc::what()返回badallocation。是否有某种原因没有返回更具描述性的字符串,例如Memoryallocationfailure? 最佳答案 Isthestringreturnedbyexception::what()expectedtobethesameacrosscompilers?不,这不是标准化的。以你的bad_alloc为例:[C++1

已解决com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException异常的正确解决方法,亲测有效!!!

已解决com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException异常的正确解决方法,亲测有效!!!文章目录问题分析报错原因解决思路解决方法识别违反的约束类型审核相关的数据操作调整数据或数据库结构实施数据完整性策略总结在开发涉及数据库操作的应用程序时,com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException异常是我们常遇到的一个问题。这个异常指出了一个重要的问题——违反了数据库的完整性约束。处理此类异常对保持数据的一

已解决selenium.common.exceptions.SessionNotCreatedException: Message: session not created异常的正确解决方法,亲测有效

已解决selenium.common.exceptions.SessionNotCreatedException:Message:sessionnotcreated异常的正确解决方法,亲测有效!!!文章目录问题分析报错原因解决思路解决方法总结在进行Web自动化测试或者网页爬虫开发时,Selenium是一个非常棒的工具。然而,在使用过程中,你可能会遇到以下错误:selenium.common.exceptions.SessionNotCreatedException:Message:sessionnotcreated本篇文章将详细解析这个问题的原因,并提供了一种亲测有效的解决方案。问题分析当你尝

C++: 跨线程异常处理问题与 boost::exception

基本上,我遇到过这样一种情况:一个线程抛出异常,而另一个线程需要处理该异常。我正在尝试使用boost异常来执行此操作,但是异常丢失了它的类型,因此没有被catchblock捕获。基本上,线程B想要做某事,但是由于各种原因,它必须由线程A完成(如果您想知道这些原因,请询问MS为什么direct3d9设备必须由与它相同的线程创建、重置和释放创建窗口)。如果在执行这些操作时发生异常,线程A会捕获它,将其传递回线程B,然后线程B重新抛出它以根据需要进行处理。问题是线程B中抛出的异常似乎与线程A中抛出的异常不同。:(我程序的调试输出和代码如下。First-chanceexceptionat0x7

c++ - 如何抛出 EXCEPTION_FLT_UNDERFLOW?

我需要一个示例代码,它会抛出EXCEPTION_FLT_UNDERFLOW。我已经有了处理该异常的代码。现在我需要样本,它会抛出它。有什么建议吗? 最佳答案 假设您想要触发此操作的实际代码:#includeintmain(){_controlfp_s(NULL,0,_MCW_EM);//enableallfloatingpointexceptionsfloatf=1.0f;while(f){f/=2.0f;//__asmfwait;//optional,ifyouwanttotraptheunderflowsooner}return

c++ - 未捕获的 std::exception 在核心中不正确的堆栈跟踪

这是我的代码:#include#includeusingnamespacestd;usingnamespacestd::tr1;usingnamespacestd::tr1::placeholders;classEvent{public:typedefstd::tr1::functionHandler;voidset(Handlerh){m_handler=h;}templatevoidset(T*obj,Fmemfn){set(std::tr1::bind(memfn,obj));}voidoperator()(){m_handler();}staticvoidfire(Event*

c++ - g++ 可以检查抛出说明符吗?

关于这个的两个问题:有没有办法强制g++忽略throw说明符?(例如,我记得,VisualStudio会忽略抛出说明符,这与throw()不同)是否有可能强制g++检查抛出说明符是否正确-我的意思是检查(这可以通过one-passcompilers完成)函数是否具有throwspecifiers调用函数,可能只是通过观察他们的throwspecifiers和观察执行throw异常,这将违反说明符?(注意:这不应该监视没有抛出说明符的函数,因为这可能会导致大量警告)编辑:我将为我的第二个问题添加一些示例。假设我们有://sorryforthecodingstylehere,butIdon

c++ - 在这个例子中,std::variant 是如何变成 valueless_by_exception 的?

这是受cppreference中示例启发的示例structS{operatorint(){throw42;}};intmain(){variantv{12.f};//OKcout(S());//vmaybevalueless}catch(...){}cout对于一个编译器,我试过它的输出false,true意味着emplace导致变体变得毫无值(value)我不明白这是怎么发生的。特别是我根本不明白为什么emplace被调用,我希望程序甚至不会调用它,因为从S到int参数的转换会抛出。 最佳答案 注意相关std::variant::