Foundation框架 - NSException类
来源:互联网 发布:python 布尔值 编辑:程序博客网 时间:2024/06/05 18:58
NSException类
WBStudentManager.h
#import <Foundation/Foundation.h>NSString* const NameInvalidException ;@interface WBStudentManager : NSObject- (void)registStudent:(NSString*)name;@end
WBStudentManager.m
#import "WBStudentManager.h"@implementation WBStudentManager//注册学生信息- (void)registStudent:(NSString *)name{ if (name==nil) { NSException* ex=[NSException exceptionWithName: NSInvalidArgumentException reason:@"name不能为nil" userInfo:nil]; @throw ex; //抛出异常对象 } if ([name isEqual:@"学生"]) { /** * arg1: name自定义异常名称 * arg2: 异常的原因,使用的是类似NSLog()的方式,带格式替换 */ [NSException raise:@"NameInvalidException" format:@"学生姓名%@不合法",name]; NSLog(@"raise方法调用后立即会结束当前方法,该行的log语句无法执行!"); }}@end
main.m
//// main.m// 9.NSException//// Created by wangzhaolu on 14-2-29.// Copyright (c) 2014年 Turing All rights reserved.//#import "WBStudentManager.h"int main(int argc, const char * argv[]) { @autoreleasepool { //NSInvalidArgumentException @try{ NSString* str =[[NSString alloc]initWithString:nil]; NSLog(@"nil string 输出结果%@",str); } @catch(NSException* ex) { //字符串比较可以使用==进行比较,比较的是内容不是地址,相当于isEqual|isEqualToString if(ex.name == NSInvalidArgumentException) { NSLog(@"输入的参数不正确,atString不能为nil"); NSLog(@"系统输出原因:%@",ex.reason); NSLog(@"userInfo:%@",ex.userInfo); } NSLog(@"出现了异常"); } //finally不是必须的!!除非要清理内存等操作 @finally{ NSLog(@"最终运行了finally部分"); } @try { WBStudentManager* mgr=[WBStudentManager new]; [mgr registStudent:nil]; //[mgr registStudent:@"王小明"]; } @catch (NSException *exception) { if ([exception.name isEqual:NameInvalidException]) { //姓名无效异常 NSLog(@"学生姓名输入不符合规范!"); }else if([exception.name isEqual: NSInvalidArgumentException]){ //姓名为nil NSLog(@"学生姓名为空,无法执行!"); //将当前错误在抛出 //方式一: //@throw; //方式二: [exception raise]; } } } return 0;}
2 0
- Foundation框架 - NSException类
- Brief Intro to NSException of Foundation Framework
- NSException
- Foundation框架-类
- Foundation框架---“集合类”
- Foundation框架 - NSDate类
- Foundation框架 - NSNumber类
- 黑马程序员-Foundation框架以及Foundation框架中的基础类
- iOS Foundation 框架基类
- Foundation 框架的常用类
- Foundation框架
- Foundation框架
- Foundation框架
- Foundation框架
- Foundation框架
- Foundation框架
- Foundation框架
- Foundation框架
- 七种常见阈值分割代码(Otsu、最大熵、迭代法、自适应阀值、手动、迭代法、基本全局阈值法)
- Linux格式化分区与挂载分区
- 社説 20150320 チュニジア襲撃 「民主化モデル」を脅かすテロ
- 广西桂林景区滚石击中游客
- andorid listView 去掉分割线
- Foundation框架 - NSException类
- 石材保温装饰一体板保养要点
- 汉口时期工作
- 写一个基础的IOCP网络模型类
- html5开发之viewport使用
- 带下划线的UILabel
- ubuntu下无线网卡解决
- 高仿精仿安卓疯狂猜图游戏源码
- mysql分表的3种方法