ドキュメンテーションヘルプ センタードキュメンテーション
このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。
エラー情報を取得する
エラーを検出して例外をスローする MATLAB®コードは、すべてMExceptionオブジェクトを構築します。MExceptionオブジェクトには取得可能なエラー情報が含まれています。MATLABは事前定義された例外または自分で構築した例外をスローできます。
MException
ME=MEException(errID,msgtext)
ME=MEException(errID、msgtext、A1、…、An)
例
ME=ME例外(厄里德,msgtext)は、特定のエラーについての情報を取得して、MExceptionオブジェクト我に保存します。MExceptionオブジェクトは、エラー識別子厄里德およびエラー メッセージmsgtextを使用して構築されます。
ME=ME例外(厄里德,msgtext)
厄里德
msgtext
我
ME=ME例外(厄里德,msgtext,A1,…,一个)は、テキストまたは数値A1,…,一个を使用してエラー メッセージの書式を設定し、msgtextの変換指定子を実行時に置き換えることができます。
ME=ME例外(厄里德,msgtext,A1,…,一个)
A1,…,一个
すべて展開する
エラーの識別子。文字ベクトルまたは 一串スカラーとして指定します。例外処理でエラー識別子を使用すると、エラー原因を特定したり、プログラム内の例外のサブセットを選択して制御したりできます。
エラー識別子には 1.つ以上の"コンポーネント" フィールドと 1.つの"ニーモニック" フィールドが含まれます。フィールドはコロンで区切られなければなりません。たとえば、コンポーネント フィールド组成部分およびニーモニック フィールド记忆的をもつエラー識別子は'组件:助记符'として指定します。
组成部分
记忆的
'组件:助记符'
一般に、コンポーネント フィールドは、さまざまなエラーが生成される可能性のある製品や機能を指定します。たとえば、エラー識別子“MATLAB:TooManyInputs”にはコンポーネント フィールドMATLABがあります。これは、MATLABで例外がスローされることを意味します。異なるコンポーネントを前に追加する限り、同じニーモニック图曼因普茨を再使用できます。たとえば、多すぎる入力で関数が呼び出されるたびにツールボックスで例外をスローする場合は、“我的工具箱:TooManyInputs”を使用できます。
“MATLAB:TooManyInputs”
MATLAB
图曼因普茨
“我的工具箱:TooManyInputs”
エラー識別子のニーモニック フィールドは、一般に、エラーの問題に固有のタグです。たとえば、MATLABであいまいな構文の使用の結果として生じるエラーを報告する場合、エラー識別子を“MATLAB:模糊语法”として指定できます。
“MATLAB:模糊语法”
コンポーネント フィールドとニーモニック フィールドはそれぞれ、文字で始まらなければなりません。残りの文字には英数字 (A~Z、A~Z、0~9)とアンダースコアを使用できます。厄里德には空白文字は使用できません。
例:'MyComponent:noSuchVariable'
'MyComponent:noSuchVariable'
例:'金宝appSimulink:信号:InvalidNumberOfPorts'
'金宝appSimulink:信号:InvalidNumberOfPorts'
エラー原因に関する情報とその修正方法。文字ベクトルまたは 一串スカラーとして指定します。テキストの書式を設定するには、\tや\nなどのエスケープ シーケンスを使用します。関数把格式数据写成串によってサポートされる%や%dなどの書式指定子も使用できます。A1,…,一个入力引数を使用して変換指定子の値を指定します。
\t
\n
把格式数据写成串
%
%d
例:“打开文件时出错。”
“打开文件时出错。”
例:'第%d行出错'
'第%d行出错'
msgtext内の変換指定子と置き換える値。それぞれ、文字ベクトル、一串スカラー、または数値スカラーとして指定します。
标识符
このプロパティは読み取り専用です。
エラーを一意に識別する文字ベクトル。入力引数厄里德によって文字ベクトルとして指定します。
例:“MATLAB:测试”
“MATLAB:测试”
消息
MATLABが例外をスローする際に表示されるエラー メッセージを含む文字ベクトル。msgtext入力引数とA1,…,一个入力引数により指定します。
例:“找不到变量x”
“找不到变量x”
堆栈
ファイル名 (文件)、関数名 (名称) および行番号 (线) などの、MATLABが例外をスローする場所のスタック トレース情報を含む構造体配列です。呼び出された関数でエラーが発生すると、呼び出された関数それぞれのファイル名、関数名および行番号が堆栈プロパティに含まれます。MATLABは例外をスローする場合にのみスタックを生成します。
文件
名称
线
堆栈は N行 1.列の结构配列です。Nは呼び出しスタックの深さを表します。
结构
原因
MATLABが例外を作成する原因となったMExceptionオブジェクトの 单间牢房配列。addCauseメソッドを使用して、例外を原因プロパティに追加します。
addCause
校正
matlab.lang.correction.AppendArgumentsCorrection
matlab.lang.correction.ConvertToFunctionNotationCorrection
matlab.lang.correction.ReplaceIdentifierCorrection
例外の修正候補。matlab.lang.correction.AppendArgumentsCorrectionオブジェクト、matlab.lang.correction.ConvertToFunctionNotationCorrectionオブジェクト、またはmatlab.lang.correction.ReplaceIdentifierCorrectionオブジェクトとして指定します。例外がスローされ、キャッチされない場合、MATLABは校正プロパティを使用して例外の修正を提案します。
投
最后一个例外
重演
throwAsCaller
添加校正
获取报告
すべて折りたたむ
MExceptionオブジェクトを作成して、入力エラーについての情報を取得します。
厄里德=“myComponent:inputError”;msgtext='输入没有预期的格式。';ME=MException(errID,msgtext)
ME=MEException,具有以下属性:标识符:“myComponent:inputError”消息:“输入没有预期的格式。原因:{}堆栈:[0x1 struct]更正:[]
msgtextとA1,…,一个の入力引数の両方を使用してエラー メッセージを作成します。
厄里德=“MATLAB:测试”;msgtext='此页上有%d个错误';A1=10;ME=MException(errID,msgtext,A1)
ME=MEException,属性为:标识符:“MATLAB:test”消息:“此页上有10个错误”原因:{}堆栈:[0x1 struct]更正:[]
入力変数名がワークスペースにない場合に例外をスローします。
str=输入('键入变量名:','s');如果~exist(str,“var”)ME=ME例外('MyComponent:noSuchVariable',...“找不到变量%s”,str);扔(我)终止
入力プロンプトでは、ワークスペースにない変数を入力します。たとえば、符号变量を入力します。
符号变量
找不到变量notaviable
ワークスペースに不可变が存在しないため、MATLABはMExceptionオブジェクトを作成しスローします。
不可变
尝试,抓住を使用してMExceptionオブジェクトで取得された情報にアクセスします。
尝试,抓住
関数冲浪への入力なしの呼び出しを含むファイルmyfile.mを作成します (この関数の呼び出しは結果的に例外となりますが、説明を分かりやすくするためにそうしています)。MATLABがスローする例外をMExceptionオブジェクト我でキャッチし、我の消息プロパティにアクセスしてエラー メッセージを表示します。
冲浪
myfile.m
尝试冲浪接住我是迪普('错误消息:')disp(ME.message)终止
错误消息:输入参数不足。
エラー識別子を抽出します。
ME.identifier
ans='MATLAB:narginchk:notEnoughInputs'
堆栈プロパティの内容をクエリします。この例では、呼び出しスタックは 2.行 1.列の構造体配列で表されます。
对于i=1:numel(ME.stack)ME.stack(i)终止
ans=struct带字段:file:'matlabroot\toolbox\matlab\graph3d\surf.m'名称:'surf'行:49 ans=struct带字段:file:'c:\myMATLABfiles\myfile.m'名称:'myfile'行:2
堆栈の最初の要素は例外が発生したときのファイル名 (冲浪)、関数名 (冲浪)、行数 (49) を表示します。堆栈の 2.番目の要素は、呼び出し元のスクリプトで例外が発生した名前と行数を示します。
49
存在しない関数注释功能を呼び出すことで生成された例外を検出します。関数が定義されていないと、警告を発行して出力に値 0を割り当てます。
注释功能
尝试a=函数(5,6);接住我如果strcmp(ME.identifier,“MATLAB:未定义函数”)警告('函数未定义。正在分配值0。');其他的重播(我)终止终止
警告:函数未定义。正在分配值0。
注释功能への呼び出しは、それ自体がエラーになります。このコードで尝试と接住を使用して未定義の関数の例外を検出し、警告として再パッケージ化することで、MATLABは引き続き後続のコマンドを実行することができます。検出された例外のエラー識別子が異なる場合、MATLABは例外を再スローします。
尝试
接住
错误|明确肯定|dbstack|尝试,抓住
错误
明确肯定
dbstack
この例の変更されたバージョンがあります。編集された方の例を開きますか?
次の MATLABコマンドに対応するリンクがクリックされました。
コマンドを MATLABコマンド ウィンドウに入力して実行してください。网状物ブラウザーは MATLABコマンドをサポートしていません。
选择一个网站以获取可用的翻译内容,并查看本地活动和优惠。根据您的位置,我们建议您选择:.
您还可以从以下列表中选择网站:
选择中国站点(中文或英文)以获得最佳站点性能。其他MathWorks国家/地区网站未针对您所在地的访问进行优化。
联系当地办事处