iOS Swift 2.1-使用Try-Catch进行错误处理
我正在尝试使用swift 2.1进行错误处理 下面的场景iOS Swift 2.1-使用Try-Catch进行错误处理,ios,swift,Ios,Swift,我正在尝试使用swift 2.1进行错误处理 下面的场景 var test: NSArray! = ["Test1", "Test2"] override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view, typically from a nib. do{ try testing() } catch {
var test: NSArray! = ["Test1", "Test2"]
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
do{
try testing()
} catch {
print("error")
}
}
func testing() throws {
print(test.objectAtIndex(7))
}
在上面的例子中,我的应用程序崩溃了&表示终止为NSException类型的未捕获异常,但我希望控件应该在Catch块中,而不是崩溃
我可以知道这个问题的解决办法吗。任何人都可以在这方面做一些必要的工作吗?你唯一能做的就是抛出一个错误(正如Eric D.在评论中指出的): 操场:
enum ArrayError : ErrorType{
case OutOfBounds
}
class SomeClass {
var test: NSArray! = ["Test1", "Test2"]
func testCode() {
do{
try testing(3)
} catch let error{
print("error = \(error)") // for index 3 this would print "error = OutOfBounds\n"
}
}
func testing(index: Int) throws -> String {
guard index < test.count else{
throw ArrayError.OutOfBounds
}
return test[index] as! String
}
}
let sC = SomeClass()
sC.testCode()
enum ArrayError:ErrorType{
边界外的情况
}
上课{
变量测试:NSArray!=[“Test1”、“Test2”]
func testCode(){
做{
尝试测试(3)
}捕捉错误{
print(“error=\(error)”//对于索引3,这将打印“error=OutOfBounds\n”
}
}
func测试(索引:Int)抛出->字符串{
防护指数
唯一可行的方法是抛出一个错误(正如Eric D.在评论中指出的):
操场:
enum ArrayError : ErrorType{
case OutOfBounds
}
class SomeClass {
var test: NSArray! = ["Test1", "Test2"]
func testCode() {
do{
try testing(3)
} catch let error{
print("error = \(error)") // for index 3 this would print "error = OutOfBounds\n"
}
}
func testing(index: Int) throws -> String {
guard index < test.count else{
throw ArrayError.OutOfBounds
}
return test[index] as! String
}
}
let sC = SomeClass()
sC.testCode()
enum ArrayError:ErrorType{
边界外的情况
}
上课{
变量测试:NSArray!=[“Test1”、“Test2”]
func testCode(){
做{
尝试测试(3)
}捕捉错误{
print(“error=\(error)”//对于索引3,这将打印“error=OutOfBounds\n”
}
}
func测试(索引:Int)抛出->字符串{
防护指数
Do-Try-Catch系统只捕获错误,不捕获异常。Do-Try-Catch系统只捕获错误,不捕获异常。