- 浏览: 3433463 次
- 性别:
- 来自: China
文章分类
- 全部博客 (536)
- ajax (1)
- Algorithm (14)
- Android (40)
- CSS/HTML... (2)
- defy (3)
- DesignPattern (2)
- dorado (0)
- Drools (6)
- English/日本語 (7)
- Flex (2)
- Framework (0)
- Google (3)
- hibernate (13)
- homework (3)
- HTML5 (0)
- IDE (29)
- java (45)
- javaee (7)
- Javascript (14)
- java组件 (5)
- jQuery (4)
- jsp (8)
- jsf (2)
- Linux (2)
- lucene (0)
- mysql (6)
- news (3)
- Oracle (8)
- other (4)
- PHP (5)
- Python (0)
- Software Engineering (3)
- spring (7)
- struts1.x (14)
- struts2.x (14)
- strolling in cloud (1)
- subject:javaEnhance (20)
- Tomcat (7)
- validator (3)
- 学习·方法·心得 (8)
- .NET (2)
- vba (6)
- groovy (5)
- grails (2)
- SWT (0)
- big data (1)
- perl (1)
- objective-c (50)
- product (1)
- mac (7)
- ios (188)
- ios-phone (2)
- ios-system (15)
- ios-network (5)
- ios-file (4)
- ios-db (1)
- ios-media (3)
- ios-ui (27)
- ios-openSource (6)
- ios-animation (5)
- ios-drawing (7)
- c (2)
- ios-app (2)
- ios-course (15)
- ios-runtime (14)
- ios-code (8)
- ios-thread (8)
- ios-LBS (2)
- ios-issue (1)
- ios-design (2)
- Jailbreak (2)
- cocos2d (0)
- swift (16)
- ios-framework (4)
- apple watch (4)
- ios-web (1)
- react native (3)
- TVOS (1)
- OpenGL (1)
最新评论
-
xiaobinggg:
...
Session机制详解 -
菜鸟学生会:
Drools规则工作流引擎开发教程网盘地址:http://pa ...
Drools入门-----------环境搭建,分析Helloworld -
wangyudong:
不是很好用,不支持自动化测试RESTful API,也不支持自 ...
Simple REST Client POST使用方法 -
Paul0523:
很棒的一篇文章,感谢楼主分享
Session机制详解 -
啸笑天:
获取原型对象的三种方法<script>functi ...
复习JavaScript面向对象技术
苹果关于异常的详细文档:
http://developer.apple.com/library/ios/#documentation/Cocoa/Conceptual/Exceptions/Exceptions.html#//apple_ref/doc/uid/10000012i
关于自定义异常或者扩展:
Objective-C中处理异常是依赖于NSException实现的,它是异常处理的基类,它是一个实体类,而并非一个抽象类,所以你可以直接使用它或者继承它扩展使用:
1.直接使用,分两种,抛出默认的异常,和自定义自己的新的种类的异常:
#import <Foundation/Foundation.h> int main (int argc, const char * argv[]) { @autoreleasepool { NSException* ex = [[NSException alloc]initWithName:@"MyException" reason:@"b==0" userInfo:nil]; @try { int b = 0; switch (b) { case 0: @throw(ex);//b=0,则抛出异常; break; default: break; } } @catch (NSException *exception)//捕获抛出的异常 { NSLog(@"exception.name= %@" ,exception.name); NSLog(@"exception.reason= %@" ,exception.reason); NSLog(@"b==0 Exception!"); } @finally { NSLog(@"finally!"); } [ex release]; } return 0; }
ps:
Initializes and returns a newly allocated exception object.
Parameters
The name of the exception.
A human-readable message string summarizing the reason for the exception.
A dictionary containing user-defined information relating to the exception
Return Value
The created NSException
object or nil
if the object couldn't be created.
Discussion
This is the designated initializer.
Availability
- Available in iOS 2.0 and later.
2.扩展使用,这个推荐你需要自定义一些功能的时候使用,比如,当捕获到指定的异常的时候弹出警告框之类的:
@interface MyException : NSException -(void)popAlert @end
@implementation MyException - (void)popAlert { //弹出报告异常原因的警告框 reason UIAlertView* alert = [[UIAlertView alloc] initWithTitle:@"Tips" message:self.reason delegate:nil cancelButtonTitle:nil otherButtonTitles:nil]; [alert show]; [alert release]; } @end
使用:
- (IBAction)btnClicked_Exception:(id)sender { MyException* ex = [[MyException alloc]initWithName:@"MyException" reason:@"除数为0了!" userInfo:nil]; @try { int b = 0; switch (b) { case 0: @throw(ex);//b=0,则抛出异常; break; default: break; } } @catch (MyException *exception)//捕获抛出的异常 { [exception popAlert]; NSLog(@"b==0 Exception!"); } @finally { NSLog(@"finally!"); } [ex release]; }这个时候,捕获到异常,它就会弹出警告框了。当然,你还可以在MyException里面加一些指定的异常的通用处理方法。
只要你愿意,你就可以随意的定制它!
发表评论
-
NSValue对任何结构体,基本类型,指针的封装
2015-08-28 09:56 4042任何结构体: 一个NSValue对象是用来存 ... -
IBInspectable / IBDesignable
2015-08-20 21:21 1672感谢:http://nshipster.cn/ibinsp ... -
Nullability and Objective-C
2015-06-18 15:59 1911https://developer.apple.com/s ... -
枚举类型 enum,NS_ENUM,NS_OPTIONS
2014-12-07 23:07 1476一般情况下,我们采用C风格的enum关键字可以定义枚举类型。 ... -
类生成字典
2014-12-07 01:18 1228-(NSDictionary *)toDict ... -
Objective-C Runtime 成员变量与属性
2014-12-06 23:49 2830习题内容 下面代码会? Compile Error / ... -
消息 和 Category
2014-12-06 23:37 1387习题内容 下面的代码会?Compile Error / ... -
对象&类&元类(Object & Class & Meta Class)
2014-12-06 22:34 5633作为C语言的超集,面向对象成为Objective-C与C语 ... -
Self & Super
2014-12-06 21:59 3735在 Objective-C 中的类实现中经常看到这两 ... -
Objective-C Runtime
2014-12-06 18:31 31659Objective-C Runtime 本文详细整理 ... -
Objective C 中的nil,Nil,NULL和NSNull理解
2014-11-26 14:26 1795ObjC 里面的几个空值符号经常会差点把我 ... -
《Effective Objective C 2.0》笔记
2014-10-21 13:36 2554第1章 熟悉objective-c 1 ... -
nil/Nil/NULL/NSNull
2014-04-11 16:47 0理解“不存在”的概 ... -
Objective-C 的“多继承”
2014-03-28 23:18 1548当单继承不够用,很难为问题域建模时,我们通常都会直接想到多 ... -
ios7 JavaScriptCore.framework
2014-03-26 01:19 29958以前想要oc调用js代码一般是通过uiwebview的st ... -
Objective C运行时(runtime)技术的几个要点总结
2014-02-20 10:09 14455from:http://www.cnblogs.com/g ... -
Method Swizzling
2014-02-20 10:11 3507Thx: http://esoftmobile.com/2 ... -
(译)Objective-C的动态特性
2014-02-20 10:09 2865过去的几年中涌现了大量的Objective-C开发者。有些 ... -
Associated Objects
2014-02-20 10:09 5436本文翻译自NSHipster的 ... -
兼容acr和非arc的宏定义
2013-11-16 16:08 0/**************** Support both ...
相关推荐
崩溃 最终崩溃记者 另一个坠机记者? 为什么?... 内省寄存器和堆栈中的对象(C字符串和Objective-C对象,包括ivars)。 提取有关异常引用的对象的信息(例如“发送到实例0xa26d9a0的无法识别的选择
一个很小的库,可让您直接在Swift代码中捕获Objective-C NSException。 一体化 可可豆 您可以使用安装NSExceptionSwift将其添加到您的Podfile : platform :ios , '8.0' use_frameworks! target 'MyApp' do pod '...
主要用于NSException 异常的捕捉,可以捕获对应的异常。
鲶鱼它是一个开源项目,包含一组用于 iOS 平台的库,用 Objective-C 编写。 它的目标是帮助程序员拥有大多数项目中日常所需的通用功能,使开发移动应用程序变得更容易。 基本上,这是重构我参与过的项目的结果。 ...
SD统计SDK采集应用程序的崩溃信息,主要分为以下两种场景: NSException异常Unix信号异常捕获NSException异常通过NSSetUncaughtExceptionHandler函数来设置异常处理函数,然后收集异常变量信息捕获信号Mach异常和...
NSException NSFileManager NSObject NSSet NSString NSTimer NSURL UIKit UIBezierPath UIButton UIColor UIDevice UIImage UIImageView UILable UINavigationController UIResponder UIScrollView UISearchBar ...
注意音频参数的设置,如果声音异常,请调整参数。 code: AVAudioSession *session = [AVAudioSession sharedInstance]; NSError *sessionError; [session setCategory:AVAudioSessionCategoryPlayAndRecord ...