Error handling Swift 3:使用if条件处理自定义错误
我对在Swift 3中抛出自定义异常感到有点困惑 在C++中,我可以这样做,以立即停止方法中的过程,抛出错误并处理它而不继续进行下去。Error handling Swift 3:使用if条件处理自定义错误,error-handling,swift3,Error Handling,Swift3,我对在Swift 3中抛出自定义异常感到有点困惑 在C++中,我可以这样做,以立即停止方法中的过程,抛出错误并处理它而不继续进行下去。 void foo() { try { if (a > b) { throw MyException(); } DoOtherStaff(); } catch (const MyException& e) { HandleError();
void foo()
{
try
{
if (a > b)
{
throw MyException();
}
DoOtherStaff();
}
catch (const MyException& e)
{
HandleError();
}
}
我正试图在Swift 3中实现类似的功能
enum MyError : Error
{
case myError(String)
}
func foo()
{
do
{
if (a > b)
{
throw MyError.myError("My error message");
}
DoOtherStaff();
}
catch
{
HandleError();
}
}
但它告诉我,错误没有得到处理,因为所包含的捕获并非详尽无遗。有办法处理吗
谢谢大家! 您显示的代码没有先天错误。作为证明,只需将以下内容复制并粘贴到操场(或实际项目中的类定义中):
它在操场上编译并运行良好(尽管它当然没有任何作用)。请注意,我所做的与你所给的代码不同,就是“填空”,即提供你所提到的所有术语的声明。< /P>这不是C++,所以请停止使用函数名称的大写字母!谢谢也请丢掉分号。谢谢。我想我已经发现了错误。我正在传输代码,但仍然有catch(const MyError&e)
。我真蠢。。。。
enum MyError : Error {
case myError(String)
}
let a = 1
let b = 2
func foo() {
do {
if a > b {
throw MyError.myError("My error message")
}
doOtherStuff()
}
catch {
handleError()
}
}
func doOtherStuff() {}
func handleError() {}