uncaghtexceptionhandler和@try@catch异常捕获

错误实际是生命中一个事实,即便最完美的程序员,也有会 运行时产生错误的代码,本文和大家一起交流这样的情况。

我们通常会遇到两种错误:编译时的错误和运行是的错误,编译是的错误是那些由编译器引发的错误,并且,我们必须在继续供工作之前修正这些错误。运行时错误发生在程序运行时,即便代码已经很好地编译。运行时的错误通常叫异常。

此处值得注意的是,异常捕获无法捕获c语言的异常,如果你要捕获的代码是c语言,那么对不起,本文方法不支持.

好了,上面都是废话,下面直接上代码:

一,本文主要介绍利用uncaghtexceptionhandler异常捕获的步骤:

首先在你想要出现错的方法中添加代码:

    NSSetUncaughtExceptionHandler (&UncaughtExceptionHandler);

如:AppDelegate.m中

- (BOOL)application:(UIApplication *)application

didFinishLaunchingWithOptions:(NSDictionary *)launchOptions

{

    NSSetUncaughtExceptionHandler (&UncaughtExceptionHandler);

 }

再实现你的方法:(调用的都是系统封装好的方法,只需要把字符串做些处理即可)

如:

void UncaughtExceptionHandler (NSException *exception)

{

    /**

     *  获取异常崩溃信息

     */

    NSArray *callStack = [exception callStackSymbols];

    NSString *reason = [exception reason];

    NSString *name = [exception name];

    NSString *content = [NSString

    stringWithFormat:@"========异常错误报告========\nname:%@\nreason:\n%@\ncallStackSymbols:\n%@",

                     name, reason, [callStack componentsJoinedByString:@"\n"]];

 

    SVError (@"%@", content);

}

 

 

二,本文还介绍一种捕获异常的方法就是@try@catch

            @try

            {

                //你想要知道如果错误会捕获的地方

            }

            @catch (NSException *exception)

            {

               //捕获的错误信息

                SVError (@"stop play video fail. %@", exception);

            }

 

好了说完了,希望对你在写iOS程序时有帮助,如果再有问题可以给我发邮件,大家共同讨论共同进步.

越分享越快乐,王彬,2016年7月26日下午10点26分

转载于:https://www.cnblogs.com/wangbinios/p/5709203.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值