OC使用@try处理异常

Object-C技术学习,更多资源请访问 https://www.itkc8.com

//  main.m

//  OC使用@try处理异常

//

//  Created by Goddog on 15/1/11.

//  Copyright (c) 2015年 Goddog. All rights reserved.

//

/*

 1.OC的异常机制并不是作为常规的编程实践,通常是作为一种程序调试、捕捉机制。

 2.通常情况下,如果@try块被执行一次,则@try块后只有一个@catch块被执行,绝不可能有多个@catch块被执行,除非使用goto。

 3.@try块里声明的变量是代码块内的局部变量,它只是在@try块内有效,@catch块中不能访问该变量。

 4.语法:@try { //业务代码实现 ...} @catch (异常1 ex){ //异常代码处理... } @catch (异常2 ex){ //异常代码处

        理... }  ... @finally{}

 5.异常几个常见方法:(1)name: 返回异常详细的名称;

                  (2)reason: 返回引发该异常的原因;

                  (3)userInfo: 返回引发该异常的用户附加信息返回一个NSDictionary对象

 6.使用@finally回收资源,在没有使用ARC机制的情况下,所有对象占有的内存必须显示回收。

 7.不要在@finally块中使用return和@throw等导致方法终止的语句。

 */

 

//
//  Person.h
//  OC使用@try处理异常
//
//  Created by Goddog on 15/1/11.
//  Copyright (c) 2015年 Goddog. All rights reserved.
//

#import <Foundation/Foundation.h>

//定义协议
@protocol Person <NSObject>
@optional
-(void) eat;
@end

 

//
//  SuperMan.h
//  OC使用@try处理异常
//
//  Created by Goddog on 15/1/11.
//  Copyright (c) 2015年 Goddog. All rights reserved.
//

#import <Foundation/Foundation.h>
#import "Person.h"

//定义接口实现协议
@interface SuperMan : NSObject<Person>

@end

 

//
//  SuperMan.m
//  OC使用@try处理异常
//
//  Created by Goddog on 15/1/11.
//  Copyright (c) 2015年 Goddog. All rights reserved.
//

#import "SuperMan.h"

//实现部分
@implementation SuperMan

@end

 

#import <Foundation/Foundation.h>
#import "SuperMan.h"

int main(int argc, const char * argv[]) {
    @autoreleasepool {
        
        //实例
        //SuperMan* superMan = [[SuperMan alloc] init];
        //没有实现eat方法,所有警告
        //[superMan eat];
        
        //进行异常处理
        @try {
            SuperMan* superMan = [[SuperMan alloc] init];
            [superMan eat];
        }
        @catch (NSException *exception) {
            NSLog(@"捕捉异常:%@,%@",exception.name,exception.reason);
        }
        @finally {
            NSLog(@"资源回收完毕!");
        }
    
    }
    NSLog(@"程序执行完毕!");
    return 0;
}

 

Object-C技术学习,更多资源请访问 https://www.itkc8.com

 

 

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值