在 DDMathParser 中使用错误处理
Using Error Handling in DDMathParser
我在我的项目中使用 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 的说法,它应该是分组错误,并且通过将 Range 与它一起使用,它应该指定它的位置,其中括号被遗漏或发生任何其他错误类型。这是它的 Documentation
您必须将错误转换为 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 方式显示内容)。
我在我的项目中使用 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 的说法,它应该是分组错误,并且通过将 Range 与它一起使用,它应该指定它的位置,其中括号被遗漏或发生任何其他错误类型。这是它的 Documentation
您必须将错误转换为 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 方式显示内容)。