如何在iOS中使用try-catch?
我想使用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
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。异常被称为“异常”,而不是错误处理程序