Object-C技术学习,更多资源请访问 https://www.itkc8.com
// main.m
// OC抛出异常与自定义异常类
//
// Created by Goddog on 15/1/11.
// Copyright (c) 2015年 Goddog. All rights reserved.
//
/*
1.自行抛出异常,应该使用@throw语句,@throw语句可以单独使用,@throw语句抛出的不是异常类,而是一个异常实例。
*/
//
// MyException.h
// OC抛出异常与自定义异常类
//
// Created by Goddog on 15/1/11.
// Copyright (c) 2015年 Goddog. All rights reserved.
//
#import <Foundation/Foundation.h>
//定义接口部分
@interface MyException : NSException
@end
//
// MyException.m
// OC抛出异常与自定义异常类
//
// Created by Goddog on 15/1/11.
// Copyright (c) 2015年 Goddog. All rights reserved.
//
#import "MyException.h"
@implementation MyException
@end
//
// Person.h
// OC抛出异常与自定义异常类
//
// Created by Goddog on 15/1/11.
// Copyright (c) 2015年 Goddog. All rights reserved.
//
#import <Foundation/Foundation.h>
//定义类的接口部分
@interface Person : NSObject
@property (nonatomic,assign) int age;
@end
//
// Person.m
// OC抛出异常与自定义异常类
//
// Created by Goddog on 15/1/11.
// Copyright (c) 2015年 Goddog. All rights reserved.
//
#import "Person.h"
#import "MyException.h"
@implementation Person
@synthesize age = _age;
//重写age
-(void) setAge:(int)age
{
if (self.age != age)
{
//检查年龄是否在0-50之间
if (age > 127 || age < 0)
{
//手动抛出异常
@throw [[MyException alloc]
initWithName:@"抛出错误" reason:@"人的年龄在0到127之间" userInfo:nil];
}
_age = age;
}
}
@end
#import <Foundation/Foundation.h>
#import "Person.h"
int main(int argc, const char * argv[]) {
@autoreleasepool {
//创建对象
Person* person = [[Person alloc] init];
person.age = 20;
NSLog(@"人的年龄:%d",person.age);
//person.age = 160;
}
return 0;
}
Object-C技术学习,更多资源请访问 https://www.itkc8.com