ReleaseCompatibilityException

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

Описание

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