ReleaseCompatibilityException

Исключение, которое происходит при обновлении тулбокса

Описание

ReleaseCompatibilityException объект представляет исключение, которое происходит при обновлении персональных настроек тулбокса.

Создание

Создайте ReleaseCompatibilityResults объект для определенного номера версии тулбокса при помощи matlab.settings.loadSettingsCompatibilityResults функция. Доступ к PreValidationExceptions свойство получить массив ReleaseCompatibilityException объекты.

Например, этот код получает исключения перед валидацией для версии 2 из тулбокса mytoolbox как массив ReleaseCompatibilityException объекты.

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

Свойства

развернуть все

Сообщение об исключении в виде вектора символов. Если исключение происходит, 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"

Примеры

свернуть все

Создайте функции, чтобы создать и затем обновить дерево фабрики тулбокса и затем протестировать это, обновление завершается успешно.

Функциональный createMyToolboxFactoryTree создает дерево заводских настроек для тулбокса mytoolbox.

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 с пустым matlab.settings.SettingsFileUpgrader объект.

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® path. Затем загрузите дерево заводских настроек для mytoolbox.

matlab.settings.reloadFactoryFile('mytoolbox');

Используйте settings функционируйте, чтобы получить доступ к корню дерева настроек и установить личностное значение для MyFontSize установка.

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

Поменяйте имена настроек в createMyToolboxFactoryTree от MyFontSize и MyFontColor к 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

Запишите переименовывание этих двух настроек в createMyToolboxSettingsFileUpgraders функционируйте как изменения в дереве настроек для версии 2 из mytoolbox. При записи переименовывания этих двух настроек введите ошибку в одном из путей. Например, удалите 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

Получите результаты обновления для версии 2 из mytoolbox и проверяйте журнал исключения на первую операцию.

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