zoukankan      html  css  js  c++  java
  • 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:@"========异常错误报告======== name:%@ reason: %@ callStackSymbols: %@",

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

        SVError (@"%@", content);

    }

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

                @try

                {

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

                }

                @catch (NSException *exception)

                {

                   //捕获的错误信息

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

                }

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

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

  • 相关阅读:
    js复制功能
    网页倒退监听
    CSS 设置table下tbody滚动条
    js滚动条滚动到底部 例如聊天这种
    时间格式转换器
    js插件整理和总结
    Js判断移动端是否存在客户端:如果存在则打开,如果不存在则下载
    qt布局添加控件的父控件说明
    qt控件模糊效果
    QT TCPSocket和QTCPServer使用
  • 原文地址:https://www.cnblogs.com/wangbinios/p/5709203.html
Copyright © 2011-2022 走看看