gpt4 book ai didi

ios - 从 NSExpression 捕获 NSInvalidArgumentException

转载 作者:塔克拉玛干 更新时间:2023-11-02 09:08:23 26 4
gpt4 key购买 nike

在我的代码中,我将字符串作为数学表达式进行评估,例如:

NSString *formula=@"9*7";
NSExpression *expr =[NSExpression expressionWithFormat:formula];
NSLog(@"%@", [[expr expressionValueWithObject:nil context:nil]intValue]);

以上工作正常,但我将处理来自用户的动态输入,因此我需要能够在用户输入错误数据时捕获异常,因此我需要能够在以下情况下捕获异常:

NSString *formula=@"9*"; //note the deliberately invalid expression
NSExpression *expr =[NSExpression expressionWithFormat:formula];
@try {
[[expr expressionValueWithObject:nil context:nil]intValue];
}
@catch (NSException *exception) {
NSLog(@"Exception");
}
@finally {
NSLog(@"Finally");
}

但是,当我运行这段代码时,我得到:

Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Unable to parse the format string "9* == 1"'

有什么方法可以捕获这个异常吗?或者是否有某种方法可以在我通过表达式之前测试它是否有效?

谢谢!

最佳答案

您当前的代码未捕获此异常的原因是此行抛出了异常:

NSExpression *expr =[NSExpression expressionWithFormat:formula];

您需要将此行移动到 @try block 中。

关于ios - 从 NSExpression 捕获 NSInvalidArgumentException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17287076/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com