社区
C++ 语言
帖子详情
try...catch语句在编译后不见了,为什么?
rchu
2005-04-29 03:03:39
用VC6,程序中用了多次try...catch语句。但是时灵时不灵。经反汇编发现,部分try...catch语句被编译器无缘无故的去掉了,不知何故,盼回答。
...全文
268
24
打赏
收藏
try...catch语句在编译后不见了,为什么?
用VC6,程序中用了多次try...catch语句。但是时灵时不灵。经反汇编发现,部分try...catch语句被编译器无缘无故的去掉了,不知何故,盼回答。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
24 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
bing_huo
2005-04-30
打赏
举报
回复
我只知道 c++的try catch 除了catch(...) 或者自定义异常这两种方式以外 是不能捕捉到除0的。。。
cmoring
2005-04-30
打赏
举报
回复
不懂,不解 study
bing_huo
2005-04-30
打赏
举报
回复
除0你怎么catch的??
catch(...) //是这样???
wohow
2005-04-30
打赏
举报
回复
运行时有没有捕捉到除0异常?
rchu
2005-04-30
打赏
举报
回复
但是我在try块里面除了调用dll以外,还故意制造了一个除0错误,结果这个该死的try还是没有给我编译出来。
rchu
2005-04-30
打赏
举报
回复
编译器还专门用一个waring来提示这里可能有除0错,但是它居然眼睁睁的看着我写的try catch(...)而无动于衷,真是!◎#¥
rchu
2005-04-30
打赏
举报
回复
对,我是用 catch(...),除0没有被捕获,发生了非法操作(即使不反汇编,这也可以说明try catch块失效了)。而在同一个程序的其他地方,这么写就没有问题。
真是奇怪了。
dananhai
2005-04-30
打赏
举报
回复
关注~~~
mostideal
2005-04-30
打赏
举报
回复
ding
bzCpp
2005-04-29
打赏
举报
回复
VC好像缺省得认为 extern "C" 得函数不抛出异常地,你得 DLL 是不是声明成了 extern "C" 得了。
rchu
2005-04-29
打赏
举报
回复
我想应该不是优化掉了,优化也得保证代码执行不受影响。明明我有除0错误,它还把异常处理优化掉,这不是拿我开涮么。
rchu
2005-04-29
打赏
举报
回复
try catch段的汇编代码大致是这个样子:
:004015E7 64A100000000 mov eax, dword ptr fs:[00000000]
:004015ED 50 push eax
:004015EE 64892500000000 mov dword ptr fs:[00000000], esp
uoyevoli
2005-04-29
打赏
举报
回复
不可能吧????????????
oyljerry
2005-04-29
打赏
举报
回复
Release有优化代码的功能,不知try catch是否这样处理了
sankt
2005-04-29
打赏
举报
回复
关注
lipotee
2005-04-29
打赏
举报
回复
关注一下。交流一下。问一下楼主,有try catch段的汇编代码是什么样子的?
学习一下
Cnwanglin
2005-04-29
打赏
举报
回复
关注
rchu
2005-04-29
打赏
举报
回复
顶一个
rchu
2005-04-29
打赏
举报
回复
非常确定,我对反汇编有一定经验,所以肯定可以看出来。而且,我在某些try块里故意加入了0做除数的错误,发生了非法操作,而没有执行我的catch块。
runall
2005-04-29
打赏
举报
回复
关注,楼主确定真的有些try块不见了?
加载更多回复(4)
异常的处理(
try
.....
cat
ch
)
try
...
cat
ch
和throws,自定义异常
Java学习笔记64.
try
...
cat
ch
...finally
语句
的嵌套
try
...
cat
ch
...finally
语句
在实质上与swit
ch
语句
是一样的,它是一种先由条件判断,再根据判断的结果选择相应的分支,执行相应的
语句
的程序结构。而finally后的
语句
跟swit
ch
结构的default一样,可有可无。如有,就一定会执行。既然如此,那么swit
ch
语句
可以进行嵌套,
try
...
cat
ch
...finally也同样可以进行嵌套,3个位置都可以。如下面的程序:publ...
【Java】异常处理、
try
...
cat
ch
语句
文章目录1. 异常1.1
try
...
cat
ch
异常处理1.2 多
cat
ch
并行处理1.3 throw和throws 关键字的使用1.4 finally代码块1.5 RuntimeException异常1.6 自定义异常 1. 异常 1.1
try
…
cat
ch
异常处理
try
cat
ch
的异常处理的格式写法 :
try
{ 被检测的代码 可能发生异常的代码 }
cat
ch
(异常类的类名 变量名){ 异常的处理方式 : 写什么都可以 定义变量,创建对象,调用方法,循环,判断.
使用
try
...
cat
ch
...finally处理异常
try
捕获异常的第一步是用
try
{…}
语句
块选定捕获异常的范围,将可能出现异常的代码放在
try
语句
块中。
cat
ch
(Exceptiontype e) 在
cat
ch
语句
块中是对异常对象进行处理的代码。每个
try
语句
块可以伴随一个或多个
cat
ch
语句
,用于处理可能产生的不同类型的异常对象。 如果明确知道产生的是何种异常,可以用该异常类作为
cat
ch
的参数;也可以用其父类作为
cat
ch
...
java+
cat
ch
块不执行_Java异常处理机制:
try
...
cat
ch
...的执行流程
Java异常处理机制:
try
...
cat
ch
...的执行流程在项目中遇到
try
...
cat
ch
...
语句
,因为对Java异常处理机制的流程不是很清楚,导致对相关逻辑代码不理解。所以现在来总结Java异常处理机制的处理流程:1.异常处理的机制如下:在方法中用
try
...
cat
ch
...
语句
捕获并处理异常,
cat
ch
语句
可以有多个,用来匹配多个不同类型的异常。对于处理不了的异常或者要转型的异常...
C++ 语言
64,637
社区成员
250,559
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章