代码如下:#import <Foundation/Foundation.h>int main(int argc, const char * argv[])
{
@autoreleasepool {
@try
{
int x = 1, y = 0;
double c = (double)x / y;
NSLog(@"c = %f",c);
}
@catch (NSException * e)
{
NSLog(@"\nCaught %@ %@",[e name],[e reason]);
}
@finally
{
NSLog(@"Finally OK!!");
}
}
return 0;
}程序运行结果:
2012-07-19 19:22:13.537 002[2193:4503] c = inf
2012-07-19 19:22:13.540 002[2193:4503] Finally OK!!除数为0,为什么程序没有跳到catch中,捕获异常呢?而是正常运行了
{
@autoreleasepool {
@try
{
int x = 1, y = 0;
double c = (double)x / y;
NSLog(@"c = %f",c);
}
@catch (NSException * e)
{
NSLog(@"\nCaught %@ %@",[e name],[e reason]);
}
@finally
{
NSLog(@"Finally OK!!");
}
}
return 0;
}程序运行结果:
2012-07-19 19:22:13.537 002[2193:4503] c = inf
2012-07-19 19:22:13.540 002[2193:4503] Finally OK!!除数为0,为什么程序没有跳到catch中,捕获异常呢?而是正常运行了
解决方案 »
- 最简单的问题:怎么引用NSImage
- 按钮滑动的动画效果
- 关于ASIHttpRequest文件下载时获取到的文件长度不一致问题
- 有关TabBarItem关联的NavigationController.xib界面显示不出来的问题(新手)
- cocos2d-x 2.x 触摸范围设置
- 请教rootViewController是在那里赋值的?
- 安装 mac os过程重启出现GNU GRUB version 0.97(637k lower/2088644k upper memory)
- 数组指针?object-c翻译成swift,求指导~
- iOS 用boundingRectWithSize确定文字消息所占矩形框宽高的问题
- 最简单的objective-c程序,为何用codeblocks+gnustep编译不能通过?
- 在xcode4环境使用boost库遇到问题求助
- 在电脑上,怎么用C++调用iTunesMobileDevice.dll连机iPhone?
从运行结果来看,“c = inf”,其中,inf表示一个无限大的数,所以不会抛出异常
我找到解决方案了,自定义一个异常类的对象,如果等于0 的话,就抛出。
之后在主函数中调用时将其放到try里面,如果有异常对象,catch就可以抛出异常了