exponenta event banner

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