博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Foundation框架 - NSException类
阅读量:5341 次
发布时间:2019-06-15

本文共 2157 字,大约阅读时间需要 7 分钟。

NSException类

WBStudentManager.h

#import 
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; }

转载于:https://www.cnblogs.com/gcczhongduan/p/5268805.html

你可能感兴趣的文章
无线通信基础(一):无线网络演进
查看>>
如何在工作中快速成长?阿里资深架构师给工程师的10个简单技巧
查看>>
WebSocket 时时双向数据,前后端(聊天室)
查看>>
关于python中带下划线的变量和函数 的意义
查看>>
linux清空日志文件内容 (转)
查看>>
安卓第十三天笔记-服务(Service)
查看>>
Servlet接收JSP参数乱码问题解决办法
查看>>
【bzoj5016】[Snoi2017]一个简单的询问 莫队算法
查看>>
Ajax : load()
查看>>
MySQL-EXPLAIN执行计划Extra解释
查看>>
Zookeeper概述
查看>>
Zookeeper一致性级别
查看>>
Linux远程登录
查看>>
Linux自己安装redis扩展
查看>>
HDU 1016 Prime Ring Problem(dfs)
查看>>
C#中结构体与字节流互相转换
查看>>
session和xsrf
查看>>
跟随大神实现简单的Vue框架
查看>>
Linux目录结构
查看>>
LeetCode-Strobogrammatic Number
查看>>