• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

Objective-C:除数为0的情况下异常的处理(检测、抛出、捕捉、处理) ...

原作者: [db:作者] 来自: [db:来源] 收藏 邀请
 1 //  DivTest.h
 2 //  异常的处理
 3 //
 4 //  Created by ma c on 15/8/11.
 5 //  Copyright (c) 2015年. All rights reserved.
 6 //
 7 
 8 #import <Foundation/Foundation.h>
 9 
10 @interface DivTest : NSObject
11 @property(nonatomic,assign)CGFloat x;
12 @property(nonatomic,assign)CGFloat y;
13 @property(nonatomic,assign)CGFloat div;
14 -(id)initWithX:(CGFloat) m andY:(CGFloat) n;
15 -(void)print;
16 @end

// 上面为类的声明部分

 

 //类的实现部分

 1 //  DivTest.m
 2 //  异常的处理
 3 //
 4 //  Created by ma c on 15/8/11.
 5 //  Copyright (c) 2015年. All rights reserved.
 6 //
 7 
 8 #import "DivTest.h"
 9 #import "MyException.h"
10 @implementation DivTest
11 -(id)initWithX:(CGFloat) m andY:(CGFloat) n
12 {
13     MyException *me;
14     self = [super init];
15     if(self!=nil)
16     {
17         _x = m;
18         _y = n;
19         if(_y==0)
20         {//如果_y=0,说明除数为零了,抛出异常给调用者去处理
21           @throw  me = [[MyException alloc]initWithName:@"MyException:" reason:@"除数为零了" userInfo:nil];
22         }
23     }
24     return self;
25 }
26 -(void)print
27 {
28     NSLog(@"div:%.2f",_x/_y);
29 }
30 @end

 

 //异常的声明和定义部分

 1 //  MyException.h
 2 //  异常的处理
 3 //
 4 //  Created by ma c on 15/8/11.
 5 //  Copyright (c) 2015年. All rights reserved.
 6 //
 7 
 8 #import <Foundation/Foundation.h>
 9 
10 @interface MyException : NSException
11 
12 @end
13 
14 
15 //  MyException.m
16 //  异常的处理
17 //
18 //  Created by ma c on 15/8/11.
19 //  Copyright (c) 2015年 bjsxt. All rights reserved.
20 //
21 
22 #import "MyException.h"
23 
24 @implementation MyException
25 
26 @end

 

 //主函数中对异常的测试和处理

 1 //  main.m
 2 //  异常的处理
 3 //
 4 //  Created by ma c on 15/8/11.
 5 //  Copyright (c) 2015年. All rights reserved.
 6 //
 7 
 8 #import <Foundation/Foundation.h>
 9 #import "DivTest.h"
10 #import "MyException.h"
11 int main(int argc, const char * argv[])
12 {
13     @autoreleasepool
14     {
15         DivTest *dt;
16         @try
17         {   //检测除数为0的异常
18             dt = [[DivTest alloc]initWithX:4 andY:0];
19         }
20         @catch(MyException *e)
21         {   //捕捉除数为零的异常
22             NSLog(@"MyException:%@",[e reason]);
23         }
24         @catch(NSException *e)
25         {  //捕捉其他的异常
26             NSLog(@"Exception:%@",[e reason]);
27         }
28         @finally
29         {  //一定要执行的代码块
30             [dt print];
31         }
32     }
33     return 0;
34 }

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
使用VisualStudio将Objective-C编译C++发布时间:2022-07-18
下一篇:
Objective-C中public、protected、private的使用[转]发布时间:2022-07-18
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap