如何在iOS中使用try-catch?

如何在iOS中使用try-catch?,ios,objective-c,Ios,Objective C,我想使用try-catch检查UITextField是否为String或数字。 但它似乎不起作用。这是我的密码: - (IBAction)add { @try { double firstNumber = self.firstNumber.text.doubleValue; double secondNumber = self.secondNumber.text.doubleValue; Calculator *calcu = [[Ca

我想使用try-catch检查
UITextField
是否为
String
或数字。 但它似乎不起作用。这是我的密码:

- (IBAction)add {

    @try {
        double firstNumber = self.firstNumber.text.doubleValue;
        double secondNumber = self.secondNumber.text.doubleValue;

        Calculator *calcu = [[Calculator alloc] initWithFirstNumber:firstNumber andSecondNumber:secondNumber andOperation:@"+"];

        self.result.text = calcu.calculateTwoNumber;
    }
    @catch (NSException *exception) {
        self.result.text = @"Please enter right number!";
    }
    @finally {

    }
}

Claus Bönnhoff在评论中写道:Objective-C不是Java或C#

在Obj-C中使用异常的公认方法是针对不可恢复的错误,而不是简单的流控制

那么,你的问题的答案是,例外情况应该很少使用。在几年的iOS开发中,我一次也没有使用过它们。我也没有在别人的代码中使用过它们


然而,我遇到了Obj-C运行时抛出的异常,我想这可以说明它们的角色可能是什么

克劳斯·本霍夫(Claus Bönnhoff)在评论中所写的内容无论怎样强调都不为过:Objective-C不是Java或C

在Obj-C中使用异常的公认方法是针对不可恢复的错误,而不是简单的流控制

那么,你的问题的答案是,例外情况应该很少使用。在几年的iOS开发中,我一次也没有使用过它们。我也没有在别人的代码中使用过它们

然而,我遇到了Obj-C运行时抛出的异常,我想这可以说明它们的角色可能是什么

遵循以下代码:

    @try {
       self.labelName.text=[arrName ObjectAtIndex:indexPath.row];
    }
    @catch (NSException *exception) {
        NSLog(@"Something missing...");
    }
    @finally {

    }
以下代码:

    @try {
       self.labelName.text=[arrName ObjectAtIndex:indexPath.row];
    }
    @catch (NSException *exception) {
        NSLog(@"Something missing...");
    }
    @finally {

    }

好吧,我认为问题在于你的
@try
中没有引发异常的东西……不要使用
try/catch
来完成这样的任务。这不是适合这份工作的工具。你认为什么会引发异常?对实际上没有数字的字符串调用
doubleValue
,只会返回文档中所述的0。try-catch应仅用于检查异常。如果要验证字段,请实现自己的方法来检查文本是否满足要求。iOS不是Java。异常被称为“异常”,而不是错误句柄。我认为问题在于,您的
@try
中没有引发异常的内容……不要使用
try/catch
执行此类任务。这不是适合这份工作的工具。你认为什么会引发异常?对实际上没有数字的字符串调用
doubleValue
,只会返回文档中所述的0。try-catch应仅用于检查异常。如果要验证字段,请实现自己的方法来检查文本是否满足要求。iOS不是Java。异常被称为“异常”,而不是错误处理程序