2012-02-18 13 views
4

私はいくつかのコードを書いていますし、今の私はいくつかの機能を作っていますが、私はそれらをまだ書いていませんよ。私はまだ何もしない空の関数を作っています。関数の実行を忘れるのを防ぐために、関数が実行されている場合は例外をスローします。Matlabで例外をスローするにはどうしたらいいですか?

答えて

6

最も簡単な方法は次のとおりです。

error('Some useful error message.') 

Matlabのは、あなたがこのように、エラーメッセージに識別子ですが割り当てるされて幸せです。

識別情報は、エラー処理の一部で報告され
error('toolsetname:other_identifying_information','Some useful error message here.') 

例えば、上記の呼び出しのたびにlasterrorを実行してみてください。

2

あなたはMATLAB documentation for "Throwing an exception"を読みましたか?

+0

ありがとう、私はそれを逃したか分からない。 –

+3

ウェブページがきれいではありません。答えにサンプルコードを追加すると素晴らしいでしょう。 – Oli

+0

公正であるためには、最も簡単な方法は@Pursuitの示唆しているように 'error()'を使うことです。 –

3

ます。また、使用することができます。

throw(MException('Id:id','message')); 

MExceptionに便利な機能があり、それはsprintfとして使用することができます。

throw(MException('Foo:FatalError',... 
    'First argument of Foo is %s, but it must be double',class(varargin{1}))); 

としては@edricによって正しくコメントし、このsprintf機能が可能両刃の剣。いくつかのエスケープ文字を使用すると、望むように動作しない可能性があります。

throw(MException('Foo:FatalError',... 
    'I just want to add a \t, no tab!')); 
+0

MExceptionコンストラクタの2番目の引数は文字列リテラルではなく、*形式指定子*であることに注意してください。 (私は過去に間違っていた、他の多くのものを持っている)。 – Edric

+0

@Edric、sprintfの機能性を意味しましたか? –

+0

はい、そうです - 私は人々が同じようなものを行うの問題を見てきました「のMException( 『一部:ID』、[ 『における問題:』 FNAME])」とfnameには「\ tの」(またはより悪い...)が含まれているが - タブ文字に変換されます。 – Edric

関連する問題