草庐IT

IGNORE_EXCEPTION_DETAIL

全部标签

c++ - future 、 promise 和异常(exception)

std::promisep1;autof=p1.get_future();{std::promisep2(std::move(pr));}boolvalid=f.valid();//truef.wait();//doesnotthrow,orfail,butreturnsimmediatelyf.get();//throwsanexception有什么方法可以在调用get之前检查future是否会抛出异常?我希望valid会检查...我不太确定如何让valid返回false。在不设置值的情况下销毁promise不会这样做。 最佳答案

c++ - LLVM 是避免动态转换规则的异常(exception)吗?

LLVM有自己的RTTI替代方案,它比内置RTTI的速度有所提高,并允许动态转换为没有vtable的类(dyn_cast)。但是,它仍然可以完全按照dynamic_cast的方式使用。尽管它确实允许它与更多类一起使用,但已被使用。dyn_casttemplatedocumentationLLVM是一个享有盛誉的C++项目,所以这似乎与俗语背道而驰,即过多的动态转换是糟糕设计的标志,也称为代码异味。当然,与标准dynamic_cast相比,性能更好的动态转换并不能改善其在设计中的使用。.那么谁在这里?在C++代码中是否存在大规模使用动态转换是一个好的设计选择的情况?Google在LLVM

c++ - 从库中的 std::exception 派生:Does a headers-only solution work for catching exceptions?

在我们的跨平台开源库中,我们派生自std::exception以定义可以在库代码和用户代码中捕获的自定义异常。我看到这实际上是一个推荐的过程,但在VisualStudio2015(或者更确切地说,伴随的新MSVC版本?)中,在实现类(warningC4275)中抛出警告-另请参见此处:Howtodllexportaclassderivedfromstd::runtime_error?当然我们可以忽略这个错误,但这对我来说似乎是错误的。与旧的VisualStudio版本相比,出现警告的原因似乎是std::exception曾经在旧的MSVC版本中导出,但同时不再导出。无论哪种情况,我都觉

C++ catch(std::exception & e) 与 catch(...)

我知道处理这两个捕获的不同之处,但是椭圆捕获std::exceptioncatch无法捕获的东西需要什么?例如:try{throwstd::runtime("runtimeerror!");}catch(conststd::exception&e){std::cout我看过结合使用这两种方法的代码示例,但我没有看到您同时使用这两种方法的原因。 最佳答案 catch(conststd::exception&e)只会捕获标准异常。catch(...)之后会捕获那里的所有内容。您可以处理整数和其他类型(http://www.cpluspl

如何彻底禁用笔记本电脑的键盘或者禁用笔记本的触控屏,及禁用后如何恢复,解决笔记本电脑蓝屏信息显示:“systern thread exception no handled” 失败操作“etd.sys

目录测试键盘是否失灵的软件针对场景网上教的方法——卸载掉PC/AT增强型PS/2键盘(101/102键)具体做法我推荐的做法——禁用笔记本的PC/AT增强型PS/2键盘(101/102键)禁用笔记本键盘(PC/AT增强型PS/2键盘(101/102键)方法禁用了笔记本键盘后虚拟键盘调用方式恢复笔记本键盘(PC/AT增强型PS/2键盘(101/102键)方法如果在笔记本电脑误操作禁用了HTD驱动导致电脑蓝屏开不了机怎么办(现象)笔记本电脑蓝屏,蓝屏信息显示:“systernthreadexceptionnohandled”或者失败操作“etd.sys”解决办法:在进入不到系统时修改ETD.sys

C++ std::system_error 与 common catch std::exception block 的用法

std::system_error处理带有相关错误代码的异常。是否可以使用公共(public)catchblock来获取std::system_error异常消息及其代码?像这样try{//codegeneratingexception}catch(conststd::exception&ex){//catchallstd::exceptionbasedexceptionslogger.log()唯一的方法是直接捕获std::system_error类型并在捕获基本异常类型之前获取其代码吗?广泛使用std::system_error的最佳方法是什么? 最佳答

c++ - 获取 boost::exception 的 what() 消息

在下面的代码中,我想获取boost::exception的what()消息。#include#include#includeintmain(void){try{inti(boost::lexical_cast("42X"));}catch(boost::exceptionconst&e){std::cout当我运行它时,我收到消息:Exception:Throwlocationunknown(considerusingBOOST_THROW_EXCEPTION)Dynamicexceptiontype:boost::exception_detail::clone_impl>但是当我没有

c++ - std::exception_ptr 线程安全吗?

我有一个工作线程,它通过std::thread持续运行、创建和管理。在我的工作线程的顶层,我有一个try/catchblock,里面有一个while循环。如果异常泄漏到线程的顶层,我会捕获它并将其存储在std::exception_ptr中,它是还拥有非静态线程函数的类的成员://Inclassheader(insideclassdeclaration)std::exception_ptrm_threadException;//InclassCPPfilevoidMyClass::MyThreadFunction(){try{while(true){//Dothreadstuff}}c

C++ : How can I solve a first-chance exception caused at an unknown point?

我正在处理的一个C++项目在抛出第一次异常时终止。当我第一次尝试访问map,int>时,这发生在处于Debug模式的VisualStudio2008中其中包含单个键值对。代码在逻辑上没有任何错误。我已经阅读了有关第一次机会异常的信息,并且了解它们可能并不总是有问题。尽管如此,我尝试打破所有此类异常,并且正如预期的那样发现生成了几个不会导致问题的异常。我正在处理的类非常大并且包含许多自定义内存分配。我推测其中之一以某种方式导致了问题。然而,我花了几个小时试图找到一种方法来确定问题出在哪里,但一直无法做到。下面列出了第一次异常输出。这不是很有帮助!First-chanceexception

c++ - 如何保证在 Visual Studio 2005 下的 C++ 中捕获 EXCEPTION_STACK_OVERFLOW 结构化异常?

背景我有一个带有Poof-Crash[1]的应用程序。我相当确定这是由于堆栈损坏造成的。应用程序是多线程的。我正在使用“启用C++异常:是的,带有SEH异常(/EHa)”进行编译。我编写了一个SE翻译器函数并用它调用了_set_se_translator()。我已经为set_terminate()和set_unexpected()编写了函数并进行了设置。为了获得StackOverflow,我必须在高负载下以Release模式运行几天。在调试器下运行不是一种选择,因为应用程序的执行速度不足以达到查看问题所需的运行时间。我可以通过在执行其中一个函数时添加无限递归来模拟该问题,从而测试是否捕