2016-10-11 10 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

を – Rob

+0

そして、catch式のどこで句に関する情報がどこで見つかったのでしょうか... – Etan

答えて

0

あなたはこの試みることができる:https://developer.apple.com/library/content/documentation/Swift/Conceptual/Swift_Programming_Language/ErrorHandling.html:ここではあなたが必要なすべての情報を見つけることができます

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

ErrorTypesに値が関連付けられていると動作しません。 – Etan

+0

@Etan、そして、リスト型宣言の中でこの型の1つを使って関連する値を得ることはどう思いましたか?この場合、あなたは**タイプのために別のキャッチを使わなければなりません。 – user28434

+0

列挙型のケースには値が関連付けられていますが、キャッチ中にそれらを破棄したいと考えています。 'Error.type1(value:Int)'と 'Error.type2(value:Int)'を仮定すると、問題なしで 'catch Error.type1'と' catch Error.type2'と書くことができます。しかし、提案された '||'解を試してみると、もう動作しません。 – Etan