objective-c - 异常处理帮助 Xcode 4.6

标签 objective-c exception-handling error-handling xcode4.6

您好,我对编程很陌生,但我一直在学习 Objective C 的一些教程。我刚刚在异常处理教程中遇到了一个问题,好吧,我的代码并没有以同样的方式工作。

首先这是我的主要代码:

#import  < Foundation/Foundation.h> 
#import "Numz.h"

int main(int argc, const char * argv[]){

@autoreleasepool {

    Numz *n = [[Numz alloc]init];
    @try {
        [n thisisgoingtogetanerror] <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< error on this line      
        }

    @catch (NSException *e) {
            NSLog(@"you got an error in your program");
        }
        NSLog(@"this is code aftr the error");
   }

   return 0;
}

上面的错误说

no visible @interface for 'Numz' declares the selector 'thisisgoingtogetanerror'



我的接口(interface)和实现已创建,但内部没有创建变量或方法,但这不是我需要首先处理错误的原因吗?
此外,我也无法获得任何类型的控制台 View ,构建失败并指出该错误。

我可能需要更改 xcode 4.6 中的一些设置,但我无法让代码运行并处理错误。我在网上查过,找不到任何答案。

任何帮助都会很棒。

最佳答案

编译器正在提示,因为您正在调用一个它从未见过声明的方法。

将其更改为(假设 Numz 不是 NSArray 的子类,也不实现 count 方法):[n count]; .

请注意,您永远不应该使用异常来进行流控制。也就是说,您不应该 @throw一个异常然后使用@catch处理异常并继续执行。 iOS/Cocoa 中的异常仅用于指示不可恢复的错误。

试试这个:

@interface NSObject(Badness)
- (void)methodBadness;
@end

然后在您的代码中调用该方法。编译器不应该警告,运行时应该@throw。

关于objective-c - 异常处理帮助 Xcode 4.6,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16886263/

相关文章:

ios - Obj-C 异步基础 - 在这种简单的情况下该怎么做?

debugging - OpenGL 抑制基于 MFC 对话框的应用程序中的异常

PhpStorm 检查错误或错误代码? try block 中未抛出的异常是意外的

c++ - 什么时候使用 exit() 与 C++ 中的异常比较好?

jsf - 使用JSF/Facelets处理带有后备bean问题的页面时出错

ios - iOS 8 中的 UIView 在 UITextField 编辑开始时不向上移动

iphone - 我必须在哪里声明静态变量?

objective-c - 从通过 WIFI 连接的计算机进行 ios 打印

java - 自定义异常类 - 从 Exception 或 Thowable 扩展?

python - int 对象是 unscriptable Python