我在我的项目中使用DDMathParser库,我想使用错误处理。如果用户输入了错误的表达式,我希望将错误显示给他。什么是我的catch块来检测和显示相关的错误及其位置。以下是我的示例代码:
do{
var X = "(3 + 4" //Missed Closed Parenthesis
let evaluator = Evaluator()
let expression = try Expression(string: X)
let value = try evaluator.evaluate(expression)
}
catch
{
}根据DDMathParser,它应该是分组错误,通过使用范围,它应该指定其位置,圆括号被遗漏或任何其他错误类型发生。这是它的文档
发布于 2015-10-09 11:19:47
您必须将错误转换为GroupedTokenError才能访问特定的DDMathParser错误消息。
do {
let X = "(3 + 4"
let evaluator = Evaluator()
let expression = try Expression(string: X)
let value = try evaluator.evaluate(expression)
} catch let error as GroupedTokenError {
print(error._code) // 1
print(error.kind) // MissingCloseParenthesis
print(error.range) // 6..<6
} catch let error as NSError {
print(error.debugDescription)
}注意,您还必须为非DDMathParser错误添加一个泛型错误捕获块(在我的示例中,泛型ErrorType将桥接到NSError,以Cocoa方式显示内容)。
https://stackoverflow.com/questions/33033488
复制相似问题