2016-07-20 4 views
-1

クラスFooとメソッドbarがあるとします。メソッドがスローしたかどうかを確認する関数J32

class Foo { 
    bar() { 
     ... 
    } 
} 

私はこの方法barスローかいないかどうかを確認するための汎用機能isThrowsを必要としています。出来ますか?

+1

この質問は意味がありませんか? 'try {} catch {}'を意味しますか? – Liam

+0

いいえメソッドをparamとして受け取り、メソッドがその本体にスローするかどうかを確認する関数が必要です。 try {} catch {}を使用します。 – melihovv

+0

なぜですか?これは非常にうんざりですか? – Liam

答えて

2

このような機能を書いています。

function isThrows(obj, method, ...args) { 
    var result = false; 
    try { 
     method.apply(obj, args); 
    } catch (e) { 
     result = true; 
    } 
    return result; 
} 

使用

const foo = new Foo(); 
const result = isThrows(foo, foo.bar/*, additional params if needed */); 
関連する問題