私が書いているMATLABクラスでは、コンストラクタに0引数が与えられた場合、ユーザはuigetfile
を使ってファイルを提供するように求められます。ユーザーがプロンプトをキャンセルした場合、は0
を返します。その場合、オブジェクトを作成する意味がありません。例外をスローせずにオブジェクトの構造を取り消す方法はありますか?私が早期復帰を行うと、私は使用できない不正なオブジェクトを取得します。コンストラクタでuigetfile
を使用して行うには正しいことであるならば、私はわからないよしかしMATLABオブジェクトの作成を例外なしでキャンセルしますか?
classdef MyClass
methods
function self = MyClass(filename)
if nargin == 0
filename = uigetfile;
if filename == 0
%cancel construction here
return; %I still get a MyClass object with self.filename == []
end
end
self.filename = filename;
end
end
properties
filename;
end
end
:ここでのコードは次のようになります。たぶんそれは私のコードの別の部分のresposibilityでなければなりません。
私はこのファイルをすべて削除することをお勧めします。 assert(nargin == 1、 'ファイル名を指定する必要があります!'); – Serg