2017-11-23 2 views
1

입력 인수에 대한 전제 조건을 지정하려면 KNIME 노드를 개발할 때 관용적 인 방법은 무엇입니까?KNIME에서 조건을 요구/주장하는 방법은 무엇입니까?

assert(condition, message)을 사용하면 효율적이고 간단 할 수 있으며, VM 인수 -ea에 따라 검사가 달라질 수 있습니다.

if (condition) throw new IllegalArgumentException(message);으로 수동 검사하는 것이 더 좋지만, 예를 들어 null을 확인하는 경우에만 추가 의미 정보를 제공하지 않습니다.

또한 org.knime.core.node.InvalidSettingsException 예외가있다. 이 목적을 위해서 사용해야합니까?

KNIME 사용되어야한다 방법의 모음이 있습니까?

답변

1

예, 잘못된 입력 신호에 권장되는 방법은, (번들 org.knime.core.util에서) org.knime.core.node.util.CheckUtils 전문 방법이 있습니다.

  • null 검사 : checkNotNull, checkArgumentNotNull, checkSettingNotNull
  • 인자 : checkArgument
  • 주 :이 방법 갖는다 checkState
  • 설정 (UI에서 또는 유동 변수) checkSetting
  • 파일 : checkDestinationFile, checkSourceFile, checkDestinationDirectory

이 체크가 실패 할 경우에만 확장 메시지에 템플릿을 사용 할 수 있습니다.

당신은 this query로 예를 들어 용도를 찾을 수 있습니다.

+1

그리고 그래, 당신은 노드 모델'configure' 방법'InvalidSettingsException'을 던져해야합니다. 또한 설정 모델 내에서 입력을 제한하는'SettingsModelIntegerBounded'와 같은 일부 설정 모델 자체를 살펴볼 가치가 있습니다. 사용자가 대화 상자에 무언가를 잘못 입력하는 것을 막을 것입니다. – SteveR

+0

@SteveR 아마도 내가 분명하지 않았지만'checkSetting'이 될 수 있습니다 그걸 사용 했어. 이것은 검사 된 예외입니다. –

관련 문제