最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

ReleaseCompatibilityException

リリース互換性の例外オブジェクト

説明

ReleaseCompatibilityException オブジェクトは、ツールボックスの個人用設定をアップグレードするときに発生する例外を表します。

作成

関数 matlab.settings.loadSettingsCompatibilityResults を使用して、ツールボックスの特定のバージョン番号用の ReleaseCompatibilityResults オブジェクトを作成します。PreValidationExceptions プロパティにアクセスし、ReleaseCompatibilityException オブジェクトの配列を取得します。

たとえば、次のコードは、ツールボックス mytoolbox の version 2 の事前検証例外を ReleaseCompatibilityException オブジェクトの配列として取得します。

myCompatibilityResults = matlab.settings.loadSettingsCompatibilityResults('mytoolbox','Version2');
myCompatibilityResults.PreValidationExceptions
ans = 
  0×0 ReleaseCompatibilityException array with properties:
    ExceptionString
    ExceptionID

プロパティ

すべて展開する

例外メッセージ。string スカラーとして指定します。例外が発生した場合、ExceptionString に例外メッセージが含まれます。

例外識別子。string スカラーとして指定します。例外が発生した場合、ExceptionID に例外識別子が含まれます。

すべて折りたたむ

ツールボックスの出荷時のツリーを作成してからアップグレードを行う関数を作成し、アップグレードが正常に完了していることをテストします。

ツールボックス mytoolbox の出荷時の設定ツリーを作成する関数 createMyToolboxFactoryTree を作成します。

function myToolboxFactoryTree = createMyToolboxFactoryTree()
    myToolboxFactoryTree = matlab.settings.FactoryGroup.createToolboxGroup('mytoolbox', ...
        'Hidden',false);

    toolboxFontGroup = addGroup(myToolboxFactoryTree,'font','Hidden',false)
    addSetting(toolboxFontGroup,'MyFontSize','FactoryValue',11,'Hidden',false, ...
        'ValidationFcn',@matlab.settings.mustBeNumericScalar)    
    addSetting(toolboxFontGroup,'MyFontColor','FactoryValue','Black', ...
        'Hidden',false,'ValidationFcn',@matlab.settings.mustBeStringScalar);
end

空の設定ファイル アップグレーダー オブジェクトを指定して、関数 createMyToolboxSettingsFileUpgraders を作成します。

function upgraders = createMyToolboxSettingsFileUpgraders()
    upgraders = matlab.settings.SettingsFileUpgrader.empty;
end

ツールボックスの settingsInfo.json ファイルを作成します。ルート設定グループ名として mytoolbox、設定ツリー作成関数として createMyToolboxFactoryTree、設定ツリー アップグレード関数として createMyToolboxSettingsFileUpgraders を指定します。settingsInfo.json をツールボックスの resources フォルダーに配置します。

{
"ToolboxGroupName" : "mytoolbox",
"Hidden" : "false",
"CreateTreeFcn" : "createMyToolboxFactoryTree",
"CreateUpgradersFcn" : "createMyToolboxSettingsFileUpgraders"
}

設定ツリー作成関数を含むフォルダーとツールボックスのリソース フォルダーを MATLAB® パスに追加します。次に、mytoolbox の出荷時の設定ツリーを読み込みます。

matlab.settings.reloadFactoryFile('mytoolbox');

関数 settings を使用して設定ツリーのルートにアクセスし、MyFontSize 設定の個人用の値を設定します。

s = settings;
s.mytoolbox.font.MyFontSize.PersonalValue = 15;

createMyToolboxFactoryTree で設定名を FontSize および FontColor に変更します。

function myToolboxFactoryTree = createMyToolboxFactoryTree()
    myToolboxFactoryTree = matlab.settings.FactoryGroup.createToolboxGroup('mytoolbox', ...
        'Hidden',false);

    toolboxFontGroup = addGroup(myToolboxFactoryTree,'font','Hidden',false)
    addSetting(toolboxFontGroup,'FontSize','FactoryValue',11,'Hidden',false, ...
        'ValidationFcn',@matlab.settings.mustBeNumericScalar)    
    addSetting(toolboxFontGroup,'FontColor','FactoryValue','Black', ...
        'Hidden',false,'ValidationFcn',@matlab.settings.mustBeStringScalar);
end

2 つの設定の名前変更を、mytoolbox Version 2 の設定ツリーへの変更として関数 createMyToolboxSettingsFileUpgraders に記録します。2 つの設定名の変更を記録するときに、一方のパスにエラーを発生させます。たとえば、最初に記録された変更の保存先パスから mytoolbox を削除します。

function upgraders = createMyToolboxSettingsFileUpgraders()
    upgraders = matlab.settings.SettingsFileUpgrader('Version2'); 
    upgraders.move('mytoolbox.font.MyFontSize','font.FontSize'); 
    upgraders.move('mytoolbox.font.MyFontColor','mytoolbox.font.FontColor');
end

mytoolbox の出荷時の設定ツリーを再度読み込みます。

matlab.settings.reloadFactoryFile('mytoolbox');

関数 settings を使用して設定ツリーのルートにアクセスし、FontSize 設定の個人用の値を確認します。個人用の値が移動していないことがわかります。

s = settings;
s.mytoolbox.font.FontSize
ans = 
  Setting 'mytoolbox.font.FontSize' with properties:
       ActiveValue: 11
    TemporaryValue: <no value>
     PersonalValue: <no value>
      FactoryValue: 11

mytoolbox の version 2 のアップグレード結果を取得し、最初の操作の例外ログをチェックします。

upgradeResults = matlab.settings.loadSettingsCompatibilityResults('mytoolbox','Version2');
upgradeResults.Results.VersionChanges(1).ExceptionLog
ans = 
  ReleaseCompatibilityException with properties:
    ExceptionString: ''font.FontSize' is an invalid path for adding a new group. 
                     The path needs to be relative to the master settings file 
                     and cannot contain ".." between folder names.'
        ExceptionID: "MATLAB:settings:config:PathNotRelativeToMasterFile"

R2019b で導入