在java中,如果一个方法抛出错误,则调用它的方法可以将其传递给下一个方法.
public void foo() throws Exception {
throw new Exception();
}
public void bar() throws Exception {
foo();
}
public static void main(String args[]) {
try {
bar();
}
catch(Exception e) {
System.out.println("Error");
}
}
我正在写一个快速的应用程序,并希望做同样的事情.这可能吗?如果不可能有什么其他可能的解决方案?我调用此调用的原始函数具有此结构.
func convert(name: String) throws -> String {
}
解决方法:
参考Swift – Error Handling Documentation,你应该:
1-通过声明符合Error Protocol的枚举来创建自定义错误类型:
enum CustomError: Error {
case error01
}
2-将foo()声明为throwable函数:
func foo() throws {
throw CustomError.error01
}
3-将bar()声明为throwable函数:
func bar() throws {
try foo()
}
请注意,尽管bar()是throwable(throws),但它不包含throw,为什么?因为它调用foo()(它也是一个抛出错误的函数),尝试意味着抛出将会明确地转到foo().
为了更清楚:
func test() {
do {
try bar()
} catch {
print("\(error) has been caught!")
}
}
test() // error01 has been caught!
如您所见,bar()自动抛出错误,这是指foo()函数错误抛出.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。