快速捕获无效用户输入的异常
我正在尝试这是一个计算器的代码。如何处理来自用户的无效输入?
// ANSWER:将标头桥接到Objective-C //
https://github.com/kongtomorrow/TryCatchFinally-
Swift
这是相同的问题,但在objc中,但我想迅速进行
我只想显示一条消息,如果它不起作用,但是现在当用户输入的格式不正确时,我将收到一个异常消息。
import Foundation
var equation:NSString = "60****2" // This gives a NSInvalidArgumentException',
let expr = NSExpression(format: equation) // reason: 'Unable to parse the format string
if let result = expr.expressionValueWithObject(nil, context: nil) as? NSNumber {
let x = result.doubleValue
println(x)
} else {
println("failed")
}
-
在Swift 2中,这仍然是一个问题。如上所述,最好的解决方案是使用桥接标头并在Objective C中捕获NSException。
https://medium.com/swift-programming/adding-try-catch-to-
swift-71ab27bcb5b8描述了一个很好的解决方案,但是确切的代码无法在Swift
2中编译,因为try
并且catch
现在是保留关键字。您需要更改方法签名以解决此问题。这是一个例子:// https://medium.com/swift-programming/adding-try-catch-to-swift-71ab27bcb5b8 @interface TryCatch : NSObject + (void)tryBlock:(void (^)())try catchBlock:(void (^)(NSException *))catch finallyBlock:(void (^)())finally; @end @implementation TryCatch + (void)tryBlock:(void (^)())try catchBlock:(void (^)(NSException *))catch finallyBlock:(void (^)())finally { @try { try ? try() : nil; } @catch (NSException *e) { catch ? catch(e) : nil; } @finally { finally ? finally() : nil; } } @end
-
org.springframework.beans.NotReadablePropertyException:Bean类[com.jit.model.Signup]的无效用户“属性”:
2021-02-02 关注 0 浏览135 1答案
-
如何使用hasNextInt()捕获异常?我需要整数,但是如果输入是字符,那是不好的
2021-01-29 关注 0 浏览86 1答案
-
为什么不捕获异常的代码允许捕获检查异常?
2021-01-30 关注 0 浏览100 1答案
-
如果任务异常,则根据用户输入多次重试任务
2021-02-02 关注 0 浏览100 1答案
-
如何处理用户输入的无效UTF-8字符?
2021-02-02 关注 0 浏览69 1答案
-
捕获空异常
2021-01-30 关注 0 浏览101 1答案
-
防止异常与捕获Java中的异常
2021-01-30 关注 0 浏览88 1答案
-
疗效用痊愈、显效、无效为指标表示
2022-05-15 关注 0 浏览25 1答案
-
Django-捕获异常
2021-01-29 关注 0 浏览89 1答案
-
python异常消息捕获
2022-03-22 关注 0 浏览28 1答案