2016-07-12 94 views
0

我想「集中」異常處理程序。例如:dart:集中異常處理

// login_view.dart: the login view throws an exception 
throw new LoginException("Invalid username or password"); 

// exception_handler.dart: in some point of my application the exception is captured 
void exceptionHandler(Exception e) { 
    if (e is LoginException) { 
    showModalDialog(e.toString()).then(() => redirectToLoginView()); 
    } 
} 

這可能嗎?我已閱讀了ExceptionHandler類,但我不確定該類是否適合這種特定情況。 謝謝。

+1

參見http://stackoverflow.com/questions/37793276/angular-2-custom-exceptionhandler-change-檢測延遲最好儘可能接近地發現異常。自定義全局異常處理程序應該只是最後的手段,例如集中記錄未捕獲的異常並引導用戶回到應用程序處於穩定狀態的位置(重新引導,...)。 –

回答

1

您可以定義一個封裝與集中式異常處理的動作,如方法:

void safely(action) { 
    try {action();} 
    catch (ex) { /*exception handling here*/ } 
} 

//use 'safely' throughout your code like this 
safely(() => doSomething());