Go to main content
Oracle® ZFS Storage Appliance 管理ガイド、Release OS8.7.0

印刷ビューの終了

更新: 2017 年 3 月
 
 

ワークフローのエラー処理

ワークフローの実行中にエラーが検出された場合は、例外がスローされます。例外がワークフロー自体によってキャッチされない場合 (または、ワークフローが別の方法ではキャッチされない例外をスローした場合)、ワークフローは失敗し、その例外に関連した情報がユーザーに表示されます。エラーを正しく処理するには、例外をキャッチして処理するべきです。たとえば、前の例では、存在しないプロジェクト内にシェアを作成しようとすると、キャッチされない例外が発生します。

使用例 22  ワークフローのエラー処理

この例は、問題のあるエラーをキャッチし、プロジェクトが存在しない場合はそのプロジェクトを作成するように変更できます。

var workflow = {
	name: 'Create share',
	description: 'Creates a new share in a business unit',
	parameters: {
		name: {
			label: 'Name of new share',
			type: 'String'
		},
		unit: {
			label: 'Business unit',
			type: 'ChooseOne',
			options: [ 'development', 'finance', 'qa', 'sales' ],
			optionlabels: [ 'Development', 'Finance',
			    'Quality Assurance', 'Sales/Administrative' ],
		}
	},
	execute: function (params) {
		try {
			run('shares select ' + params.unit);
		} catch (err) {
			if (err.code != EAKSH_ENTITY_BADSELECT)
				throw (err);

			/*
			 * We haven't yet created a project that corresponds to
			 * this business unit; create it now.
			 */
			run('shares project ' + params.unit);
			run('commit');
			run('shares select ' + params.unit);
		}

		run('filesystem ' + params.name);
		run('commit');
		return ('Created new share "' + params.name + '"');
	}
};