2016-10-11 73 views
0

PHP 7.1引入了一種爲多種異常類型重用異常處理代碼的方法。爲多種異常類型共享異常處理代碼

https://wiki.php.net/rfc/multiple-catch

<?php 

try { 
    // Some code... 
} catch (ExceptionType1 | ExceptionType2 $e) { 
    // Code to handle the exception 
} catch (\Exception $e) { 
    // ... 
} 

不夫特3提供類似的方式,例如通過在catch表達式中使用where子句?

+1

在這裏你可以找到你需要的所有信息:https://developer.apple.com/library/content/documentation/Swift/Conceptual/Swift_Programming_Language/ErrorHandling.html – Rob

+0

我想知道我在哪裏找到有關catch語句中where子句的信息... – Etan

回答

0

你可以試試這個:

catch let error where error is ErrorType1 || error is ErrorType2 
+0

ErrorTypes具有關聯值時不起作用。 – Etan

+0

@Etan,你是怎麼想到在列表類型聲明中使用'這種類型之一獲取關聯值的?在這種情況下,你必須**使用單獨的catch類型。 – user28434

+0

枚舉案例有相關的值,但在捕獲期間,我想放棄它們。假設它是'Error.type1(value:Int)'和'Error.type2(value:Int)',你可以直接寫'catch Error.type1'和'catch Error.type2'而沒有任何問題。但是,當您嘗試所提議的解決方案時,它將不再起作用。 – Etan