Articles of 未处理exception

C ++的bad_allocexception

我试图捕获bad_allocexception,以certificate析构函数被使用。 这是我的对象: #include "Obj.h" #include<iostream> using namespace std; Obj::Obj() { d = new double[200000000]; } Obj::~Obj() { cout << "destroyed \n"; } 主要的方法是: #include "Obj.h" #include <iostream> using namespace std; int main(){ Obj* ptr[1000000]; try{ for(int i=0; i<1000; i++){ ptr[i] = new Obj(); } } catch(bad_alloc){ cout<<"EXCEPTION"; } } 我的程序停止并尝试在线查找解决scheme(Windows),而不是捕获exception。 为什么发生这种情况? 编辑我现在得到的exception,但我应该certificate,析构函数是在抛出exception之前使用。 我该怎么做?

什么是“未知软件exception(0xc00000fd)”错误以及如何避免它?

我创build了一个名为code_2的AHK脚本,将其编译并放置到我的启动文件夹中,以便每次打开计算机时都会自动启动。 该脚本正在检查一些网站的新的更新,每当检测到网站上的更新,它使用UrlDownloadToFile下载这些更新。 起初脚本似乎工作正常,但最近我开始从我的电脑收到我的脚本运行约15分钟后的以下消息: C:\ Documents and Settings \ Administrator \「开始」function表\程式集\启动\ code_2.exe:code_2.exe – 应用程式错误 未知软件exception(0xc00000fd)于位置0x7c92eddc。 请按[确定]终止程式 请按[取消]进行程式错误 不知道这个信息是关于什么的? (对不起,这里的中国人,但我想如果你知道这个消息的话,你就熟悉这个内容了)。 无论如何,这里是谷歌翻译完成的消息的翻译: C:\ Documents and Settings \ Administrator \“开始”菜单\程序\启动\ code_2.exe:code_2.exe – 应用程序错误 该应用程序发生位置0x7c92eddc处的未知软件exception(0xc00000fd)。 按[确定]结束程序按[取消]编程debugging

抛出exception似乎阻塞其他线程

背景/简介: 非常奇怪的问题是,在抛出一个特定的exception时,看起来所有其他的线程都会停止执行,直到处理exception。 该应用程序是一个代理服务器,通过一个tcp套接字连接多个请求(在任何一个时间段内有数百个请求),通过socks连接连接到N个其他代理客户端。 这也是通过传递一个委托,而不是使用一个例外,同样的糟糕的性能结果。 正常操作下的日志片段: 14:40:17.700 [PrxSvc:9058] –> [200] 1217ms http://redact.example.com 14:40:17.700 [PrxSvc:9058] C-DEBUG:C 14:40:17.716 [PrxSvc:9058] –> [200] 1098ms http://redact.example.com 14:40:17.716 [PrxSvc:9058] C-DEBUG:C 14:40:17.727 [PrxSvc:9054] –> [200] 905ms http://redact.example.com 14:40:17.727 [PrxSvc:9054] C-DEBUG:C 14:40:17.778 [PrxSvc:9050] –> [200] 453ms http://redact.example.com 14:40:17.778 [PrxSvc:9050] C-DEBUG:C 14:40:17.781 [Unnamed Thread] C-DEBUG:A 14:40:17.781 [Unnamed Thread] C-DEBUG:B 14:40:17.796 [PrxSvc:9058] –> [200] 652ms http://redact.example.com […]

使用Delphi删除Windows防火墙规则(例外)

我正在尝试使用Delphi XE3pipe理Windows 7上的防火墙规则(例外)。 我发现了一个非常有趣的向Windows防火墙添加规则的代码,但没有关于删除(删除)它的任何内容。 请,有人可以帮忙吗? 以下是添加规则的代码: procedure AddExceptToFirewall(const Caption, AppPath: String); // Uses ComObj const NET_FW_PROFILE2_PRIVATE = 2; NET_FW_PROFILE2_PUBLIC = 4; NET_FW_IP_PROTOCOL_TCP = 6; NET_FW_ACTION_ALLOW = 1; var Profile: Integer; Policy2: OleVariant; RObject: OleVariant; NewRule: OleVariant; begin Profile := NET_FW_PROFILE2_PRIVATE OR NET_FW_PROFILE2_PUBLIC; Policy2 := CreateOleObject('HNetCfg.FwPolicy2'); RObject := Policy2.Rules; NewRule := CreateOleObject('HNetCfg.FWRule'); NewRule.Name := Caption; NewRule.Description […]

在Python 3.3中捕获TimeoutExpiredexception

对不起,如果这是一个新手问题,但我遇到了在Python 3.3中运行的超时exception,运行在Win7上,例如 import subprocess try: subprocess.call("ping -t localhost", timeout=3) except TimeoutExpired: print("Timeout happened.\n") 超时工作正常,根据我的pdb回溯,它说: "raise TimeoutExpired(self.args, timeout)" 但“除了TimeoutExpired:”没有抓住它。 此外,TimeoutExpired未列为标准exception,并以nameErrorforms出现。 如果我尝试"except TimeoutError:"而不是"except TimeoutExpired:" ,我没有得到错误消息,但在pdb中,我得到: "Uncaught exception" 并且打印命令在任何情况下都不会被执行。 这是一个错误,还是我做错了什么?

如何在不丢失原始调用堆栈的情况下重新抛出exception?

情况如下:线程A捕获一个exception,将exception的数据保存在内存中的某个地方(在exceptionfilter中使用GetExceptionInformation),后缀线程B获取该exception信息并且想要重新抛出它。 但事情是,当线程B重新抛出捕获exception时,我错过了导致exception的原始调用堆栈。 如何重新抛出exception而不会丢失原始的调用堆栈? (注意这个问题是关于C ++的)。

在使用java web start实现自动更新桌面应用程序时出现AWTPermissionexception

我正在提供数据的在线备份的桌面应用程序中工作。 在我的应用程序中,我试图实现自动软件更新function。 为此,我正在使用java web开始。 我已经完成了使用java web start的以下过程。 1>创build所有资源的jar。 2>创buildjnlp文件为: <?xml version="1.0" encoding="UTF-8"?> <jnlp spec="1.0+" codebase="http://cmswebusa.com/kapil" href="PixelVaultJNLP.jnlp"> <information> <title>PixelVault</title> <vendor>globussoft</vendor> </information> <resources> <!– Application Resources –> <jar href="PixelVault.jar" main="true" /> </resources> <application-desc name="PixelVault" main-class="com.pixelvault.systemtray.SysTray"> </application-desc> <update check="background"/> </jnlp> PixelVault.jar是位于http服务器位置的应用程序的jar文件。 而我试图下载我的应用程序使用命令提示符运行选项键入:javaws,我得到AWT权限exception为: java.security.AccessControlException:拒绝访问“java.awt.AWTPermission” 它说“java.awt.AWTPermissionException”“accessSystemTray”。 我没有得到如何让我的应用程序使用系统托盘。 请指导对jnlp文件进行更改或对我的应用程序进行其他更改。 我感谢你提出的所有有价值的build议,这将有助于我解决这个问题。

C ++:我应该捕获所有exception还是让程序崩溃?

我用(Visual)C ++编写的Windows服务具有非常详细的日志loggingfunction,这经常帮助我find客户有时遇到的错误的原因。 基本上我检查每个返回值并logging发生了什么,错误来自哪里。 理想情况下,我想对exception具有相同级别的详细可见性(如数组超出范围,除以零等等)。 换句话说:我想知道exception来自哪里。 出于可读性和实用性的原因,我不想将每行代码封装到单独的try / catch块中。 我今天所拥有的是一个全面的捕获所有东西,并在closures程序之前logging错误的东西。 从用户的angular度来看,这是很好的 – 干净的closures,而不是应用程序崩溃 – 但对我来说不好,因为我只从exception(例如“数组超出范围”)得到一个通用的消息,但不知道从哪里来。 如果删除所有的程序,让程序崩溃,不是更好吗? 我可以指导客户让Windows创build应用程序崩溃转储(如此处所述)。 使用转储文件WinDbg将指向我正好在引发exception的代码中的位置。

在Qt应用程序中的C ++崩溃/exception处理程序,在Windows上有线程支持

我想为我的Qt应用程序做一个崩溃/exception处理程序。 我有处理程序已经工作(不包括在下面的代码中)。 问题是在Windows上,它只有在调用signal()和std::set_terminate()的同一个线程中发生崩溃时才有效。 在Linux上,它似乎默认适用于所有线程。 有没有办法使它适用于Windows上的所有应用程序线程? #include "mainwindow.h" #include <QApplication> #include <stdio.h> #include <signal.h> #include <stdlib.h> #include <exception> void seg_handler(int sig) { // Crash/exception handling code // … exit(1); } void std_handler( void ) { seg_handler(1); } int main(int argc, char *argv[]) { signal(SIGSEGV, seg_handler); std::set_terminate( std_handler ); QApplication a(argc, argv); MainWindow w; w.show(); return a.exec(); […]

在Windows中,“应用程序中发生了exception未知软件exception(0x40000015)”,意思是STATUS_FATAL_APP_EXIT?

在关机(由UPS启动)我的应用程序崩溃,并出现一个消息框。 消息框中的文本是“应用程序中发生exception未知软件exception(0x40000015)”。 我浏览ntstatus.h ,发现STATUS_FATAL_APP_EXIT ? 如果这是正确的,为什么消息框中说“未知软件exception”?