社区
C++ Builder
帖子详情
Windows下如何获取除以零 这种错误?
iori97king
2007-07-12 09:19:15
Windows下如何获取除以零 这种错误?
还有就是如果设置一个进程的最大占用时间
...全文
238
9
打赏
收藏
Windows下如何获取除以零 这种错误?
Windows下如何获取除以零 这种错误? 还有就是如果设置一个进程的最大占用时间
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
9 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
anloy_3633
2007-07-22
打赏
举报
回复
赞成cczlp的观点,不要隐藏错误。
Friecin
2007-07-22
打赏
举报
回复
try
{
int a=1, b=0,c;
c=a/b;
}
catch(EDivByZero &e)
{
ShowMessage(e.Message);//错误处理
}
sakaer
2007-07-16
打赏
举报
回复
楼上的所有的楼上的方法都是正确的
hansyswin
2007-07-14
打赏
举报
回复
mark
cczlp
2007-07-13
打赏
举报
回复
1. 应该改正代码错误, 而不要隐藏错误
2. 设置优先级比正常的低
i_love_pc
2007-07-13
打赏
举报
回复
1.除零异常
int a=10;
int b=0;
int c;
try
{
c=a/b;
}
catch(EDivByZero &e)
{
ShowMessage(e.Message);//错误处理
}
2.根据实际情况Sleep();
wengcd
2007-07-13
打赏
举报
回复
//在主窗体中建一个函数。
//.h文件
public: // User declarations
void __fastcall Tfor_Plus::AppLevelExceptionHandle(TObject *Sender,Exception *E);
//.cpp文件
void __fastcall Tfor_Plus::AppLevelExceptionHandle(TObject *Sender,Exception *E)
{
Screen->Cursor = crDefault;
AnsiString sProcedureName;// = gsProcedureName;
gsProcedureName = "";
AnsiString sText,sCaption;
sCaption = AnsiString(E->ClassName());
AnsiString sCaption2;
AnsiString sCaptionUpperCase = sCaption.UpperCase();
if(sCaptionUpperCase == "EABORT"){
sCaption2 = "不显示错误消息框,终止事件序列";
}
else if(sCaptionUpperCase == "EDIVBYZERO"){
sCaption2 = "整数零除错误";
}
else if(sCaptionUpperCase == "EACCESSVIOLATION"){
sCaption2 = "内存访问错误";
}
else if(sCaptionUpperCase == "EBITSERROR"){
sCaption2 = "阻止对布尔型数组无效访问错误";
}
else if(sCaptionUpperCase == "ECOMPONENTERROR"){
sCaption2 = "注册或重命名组件错误";
}
else if(sCaptionUpperCase == "ECONVERTERROR"){
sCaption2 = "对象转换错误";
}
else if(sCaptionUpperCase == "EDATABASEERROR"){
sCaption2 = "数据库访问错误";
}
else if(sCaptionUpperCase == "EDBEDITERROR"){
sCaption2 = "与指定模式不兼容错误";
}
else if(sCaptionUpperCase == "EEXTERNALEXCEPTION"){
sCaption2 = "未识别异常代码";
}
else if(sCaptionUpperCase == "EINOUTERROR"){
sCaption2 = "文件输入输出错误";
}
else if(sCaptionUpperCase == "EINTOVERFLOW"){
sCaption2 = "寄存器溢出";
}
else if(sCaptionUpperCase == "EINVALIDCAST"){
sCaption2 = "非法类型转换错误";
}
else if(sCaptionUpperCase == "EINVALIDGRAPHIC"){
sCaption2 = "访问非法图形文件格式错误";
}
else if(sCaptionUpperCase == "EINVALIDOPERATION"){
sCaption2 = "组件非法操作错误";
}
else if(sCaptionUpperCase == "EINVALIDPOINTER"){
sCaption2 = "非法指针操作";
}
else if(sCaptionUpperCase == "EMENUERROR"){
sCaption2 = "菜单错误";
}
else if(sCaptionUpperCase == "EOLECTRLERROR"){
sCaption2 = "ActiveX控件错误";
}
else if(sCaptionUpperCase == "EOLEERROR"){
sCaption2 = "OLE自动化错误";
}
else if(sCaptionUpperCase == "EPRINTERERROR"){
sCaption2 = "打印错误";
}
else if(sCaptionUpperCase == "EPRINTERERROR"){
sCaption2 = "打印错误";
}
else if(sCaptionUpperCase == "EPROPERTYERROR"){
sCaption2 = "属性值错误";
}
else if(sCaptionUpperCase == "ERANGEERROR"){
sCaption2 = "整型数溢出";
}
else if(sCaptionUpperCase == "EREGISTRYEXCEPTION"){
sCaption2 = "注册表错误";
}
else if(sCaptionUpperCase == "ESTACKOVERFLOW"){
sCaption2 = "堆栈错误";
}
else if(sCaptionUpperCase == "EZERODIVIDE"){
sCaption2 = "浮点零除错误";
}
else{
sCaption2 = "未知错误";
}
sText = "ClassName = " + sCaption + "(" + sCaption2 + ")\r\n过程名 = " + sProcedureName + "\r\nMessage = " + E->Message;
MessageBox(Handle,sText.c_str(),AnsiString(E->ClassName()).c_str(),MB_OK|MB_ICONEXCLAMATION);
}
在每个窗体的OnCreate事件中写入
Application->OnException = for_Plus->AppLevelExceptionHandle;
jacknes009
2007-07-13
打赏
举报
回复
使用异常处理
int a=10;
int b=0;
int c;
try
{
c=a/b;
}
catch(EDivByZero &e)
{
ShowMessage(e.Message);//错误处理
}
Y___Y
2007-07-12
打赏
举报
回复
使用异常处理
linux 除0异常,关于c ++:整数
除以
零
的平台会触发浮点异常?
在另一个问题中,有人想知道他们为什么会得到一个"浮点
错误
",实际上他们的C ++程序中有一个整数除
零
。围绕这一点进行了讨论,有些人声称浮点异常实际上从未因浮点
除以
零
而增加,而只是在整数
除以
零
时出现。这听起来很奇怪,因为我知道:所有
Windows
平台上x86和x64上的MSVC编译代码报告int
除以
零
为"0xc0000094:整数
除以
零
",浮点
除以
零
为0xC000008E"浮点
除以
零
"(启用时)IA...
linux程序 报浮点异常,c – 整数
除以
零
的平台会触发浮点异常?
我不确定目前的情况如何,但目前的情况是FP异常检测支持与整数非常不同.陷阱的整数除法很常见.如果它引起异常,则为POSIX requires it to raise SIGFPE.但是,你可以理清它是什么类型的SIGFPE,看它实际上是一个除法异常. (但不一定是被0
除以
:2的补码INT_MIN / -1除法陷阱,而当64b / 32b除法的商不适合32b输出寄存器时,x86’s div and ...
「C系列」C
错误
处理
对于整数除法,当除数为
零
时,大多数编译器会发出警告或
错误
,因为
这种
行为在C语言标准中是未定义的(Undefined Behavior)。在C语言中,当尝试进行除法运算并且除数为
零
时,会触发一个运行时
错误
,通常被称为“被
零
除”或“
除以
零
”
错误
。在C语言中,
错误
处理是一个重要的编程实践,用于确保程序在遇到
错误
或异常情况时能够做出适当的响应。在你的代码中,直接使用这些宏而不是硬编码具体的值是一个好习惯,因为它提高了代码的可移植性。在这个例子中,如果除数为
零
,程序会打印一条
错误
消息到标准
错误
流(
深入浅出
Windows
异常处理
程序执行过程中难免会发生
错误
,例如访问非法内存地址或除数为
零
等,CPU负责检测此类
错误
并转交给
Windows
处理,此类
错误
称为硬件异常。除了硬件异常,操作系统和应用程序还可以显式抛出一个异常,称为软件异常。异常处理是指异常发生后(包括硬件异常和软件异常),
Windows
或应用程序所执行的一段处理逻辑,
这种
处理逻辑旨在应对和解决异常情况,从而确保系统或应用程序能够继续运行或安全地终止。 异常发生时,如果程序中没有显式设置相应的异常处理代码,系统通常会启动
Windows
错误
报告(
Windows
Error Re
【转载】探索
Windows
平台下的 C++ 异常捕获策略:如何让
Windows
C++应用程序尽可能捕获所有异常?
这个标题起的有点纠结,感觉不太好起。实际上本文想要讨论的场景,是一个比较经典的
Windows
C++商业应用软件的开发需求:我们希望能够在程序发生异常并崩溃时,能够弹出对用户比较友好的崩溃提示窗口,并且生成dump文件上传到服务器上,让开发人员能够
获取
并分析。因此,本文提出一套捕获
Windows
平台下C++程序异常的方案,经过长时间的线上验证,是可以捕获到绝大多数的异常的。至于为什么不是所有异常,我们后面再讨论。这段程序使用了多种技术来捕获异常。
C++ Builder
13,871
社区成员
102,693
社区内容
发帖
与我相关
我的任务
C++ Builder
C++ Builder相关内容讨论区
复制链接
扫一扫
分享
社区描述
C++ Builder相关内容讨论区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章