检查表达式是否有效

认识多西

由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:“无法解析格式字符串“12+6+ == 1””

我想验证表达式是否有效。我正在尝试使用以下代码:

let equationString = "12+6+"

do {
    let expr =  try NSExpression(format: equationString)
    if let result = expr.expressionValue(with: nil, context: nil) as? NSNumber {
        let x = result.doubleValue
        print(x)
    } else {
        print("failed")
    }
}
catch {
    print("failed")
}

我已经使用了 try-catch 语句,但我仍然在这里崩溃。有什么解决办法吗?

任何帮助,将不胜感激。

认识多西

您可以将其与 try 一起使用:

let equationString = "12+6+"//"12*/6+10-5/2"

do {
    try TryCatch.try({
        let expr = NSExpression(format: equationString)
        if let result = expr.expressionValue(with: nil, context: nil) as? NSNumber {
            let x = result.doubleValue
            print(x)
        } else {
            print("failed")
        }
    })
} catch {
    print("Into the catch.....")
    // Handle error here
}

TryCatch.h

+ (BOOL)tryBlock:(void(^)(void))tryBlock
           error:(NSError **)error;

TryCatch.m :

@implementation TryCatch

+ (BOOL)tryBlock:(void(^)(void))tryBlock
           error:(NSError **)error
{
    @try {
        tryBlock ? tryBlock() : nil;
    }
    @catch (NSException *exception) {
        if (error) {
            *error = [NSError errorWithDomain:@"com.something"
                                         code:42
                                     userInfo:@{NSLocalizedDescriptionKey: exception.name}];
        }
        return NO;
    }
    return YES;
}

@end

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

C#检查表达式是否在方括号中有效

来自分类Dev

在python中使用正则表达式检查表达式是否有效

来自分类Dev

检查表达式syntaxt的更有效的解决方案?

来自分类Dev

javascript:检查表达式是否可评估?

来自分类Dev

检查表达式中是否为空

来自分类Dev

检查表达式是否具有自由参数

来自分类Dev

检查表达式是否具有自由参数

来自分类Dev

正则表达式-检查表达式是否以换行符结尾

来自分类Dev

检查表达式是否与正则表达式匹配

来自分类Dev

用于检查表达式是否与Rust中的模式匹配的布尔表达式

来自分类Dev

检查表达式是否与正则表达式匹配

来自分类Dev

检查表达式中的每个大括号是否都有匹配的右大括号

来自分类Dev

如何使用AngularJS检查表中的所有输入是否为ng有效?

来自分类Dev

如何检查表达式是否为空(无效)?

来自分类Dev

使用预处理器检查表达式是否为左值

来自分类Dev

C ++:用于检查表达式是否编译的模板

来自分类Dev

检查表达式是否可编译的便携式方法

来自分类Dev

如何检查表达式是否为Sympy向量

来自分类Dev

GCC检查表达式是否将在固定时间内执行

来自分类Dev

AngularJS检查表单中的部分是否有效

来自分类Dev

如何检查表名称在Propel中是否有效?

来自分类Dev

检查表中是否存在特定数量的行的最有效方法

来自分类Dev

如何检查表名在Propel中是否有效?

来自分类Dev

Maxima块检查表达式形式

来自分类Dev

使用Regex检查表达式的验证

来自分类Dev

错误错误:ExpressionChangedAfterItHasBeenCheckedError:检查表达式后,表达式已更改。角度的

来自分类Dev

在SQL Server中是否有检查数学表达式并返回有效数字的函数?

来自分类Dev

我怎样才能让gcc预处理器检查表达式的值是否为零?

来自分类Dev

如何在测试用例样本中的javascript中检查表达式是否正确?

Related 相关文章

  1. 1

    C#检查表达式是否在方括号中有效

  2. 2

    在python中使用正则表达式检查表达式是否有效

  3. 3

    检查表达式syntaxt的更有效的解决方案?

  4. 4

    javascript:检查表达式是否可评估?

  5. 5

    检查表达式中是否为空

  6. 6

    检查表达式是否具有自由参数

  7. 7

    检查表达式是否具有自由参数

  8. 8

    正则表达式-检查表达式是否以换行符结尾

  9. 9

    检查表达式是否与正则表达式匹配

  10. 10

    用于检查表达式是否与Rust中的模式匹配的布尔表达式

  11. 11

    检查表达式是否与正则表达式匹配

  12. 12

    检查表达式中的每个大括号是否都有匹配的右大括号

  13. 13

    如何使用AngularJS检查表中的所有输入是否为ng有效?

  14. 14

    如何检查表达式是否为空(无效)?

  15. 15

    使用预处理器检查表达式是否为左值

  16. 16

    C ++:用于检查表达式是否编译的模板

  17. 17

    检查表达式是否可编译的便携式方法

  18. 18

    如何检查表达式是否为Sympy向量

  19. 19

    GCC检查表达式是否将在固定时间内执行

  20. 20

    AngularJS检查表单中的部分是否有效

  21. 21

    如何检查表名称在Propel中是否有效?

  22. 22

    检查表中是否存在特定数量的行的最有效方法

  23. 23

    如何检查表名在Propel中是否有效?

  24. 24

    Maxima块检查表达式形式

  25. 25

    使用Regex检查表达式的验证

  26. 26

    错误错误:ExpressionChangedAfterItHasBeenCheckedError:检查表达式后,表达式已更改。角度的

  27. 27

    在SQL Server中是否有检查数学表达式并返回有效数字的函数?

  28. 28

    我怎样才能让gcc预处理器检查表达式的值是否为零?

  29. 29

    如何在测试用例样本中的javascript中检查表达式是否正确?

热门标签

归档