태스크 2: 중단점 설정

중단점을 설정하여 널 포인터 예외가 발생한 위치를 판별합니다.

이 태스크에 대한 정보

자동 예외 처리 로그 메시지를 살펴 보십시오.

이미지는 오류 메시지를 표시합니다.

다음과 같이 loanvalidation 규칙 플로우 및 해당 validation 규칙 태스크를 나열합니다.

ruleflow.loanvalidation$003evalidation

이에 대해 중단점을 배치하여 태스크에서 프로세스를 추적하려 합니다. 그런 다음 오류를 생성하는 규칙을 검색하고 더 많은 추적을 추가한 다음 디버그 구성을 실행합니다.

1단계: 중단점 설정

의사결정 서비스를 실행하고 오류의 소스를 검색하며 중단점을 추가합니다.

프로시저

  1. 태스크 1: 자동 예외 처리 사용에 표시된 대로 의사결정 서비스를 실행하십시오.
    결과에는 다음 오류 코드가 포함됩니다.

    ruleflow.loanvalidation$003evalidation

    다음과 같이 코드를 이해할 수 있습니다.

    • 규칙 플로우 이름: loanvalidation
    • 규칙 태스크: validation

    loanvalidation 규칙 플로우에서 validation 태스크를 찾고자 합니다.

  2. 도구 모음에서 검색 > 검색 을 클릭하십시오.
  3. 규칙 검색 탭을 여십시오.
  4. 검색 필드에 loanvalidation 를 입력하십시오.
    팁: 오류 메시지에서 규칙 플로우의 이름을 복사하여 검색 필드에 붙여넣을 수 있습니다.
  5. 규칙 플로우를 선택한 후 검색을 클릭하십시오.
    loanvalidation 규칙 플로우가 검색 보기에 표시됩니다.
    이미지는 규칙 플로우 검색 결과를 표시합니다.
  6. 검색 보기에서 규칙 플로우를 두 번 클릭하여 여십시오.
  7. validation 태스크를 클릭하여 선택하십시오.
  8. 태스크를 마우스 오른쪽 단추로 클릭하고 팝업 메뉴의 맨 아래에 있는 중단점 토글 을 클릭하여 중단점이 있는 태스크에 태그를 지정하십시오.
    이제 이 태스크에서 중단점의 추가를 나타내는 점이 표시됩니다.
    이미지는 중단점이 있는 규칙 태스크를 표시합니다.

2단계: 디버그 세션 준비

checkZipcode 서술형 규칙이 예외를 보여주므로 규칙을 찾고 여기에 추적 정보를 추가합니다.

시작하기 전에

이 단계에서는 규칙 플로우 태스크의 특성에 대한 규칙 선택 탭을 통해 서술형 규칙을 탐색합니다. 선택적으로, 검색에서 규칙 검색을 수행하여 이름으로 서술형 규칙을 찾을 수 있습니다.

프로시저

  1. 자동 예외 처리 메시지를 살펴 보십시오.
    널 포인터 예외가 checkZipcode 규칙 조건에서 발생함을 확인할 수 있습니다.

    FINE: AEH_LOG: java.lang.NullPointerException: In 'checkZipcode' rule condition

  2. loanvalidation 규칙 플로우에서 validation 태스크를 두 번 클릭하십시오.
  3. 특성 탭에서 규칙 선택 을 클릭하고 validation 패키지를 펼치십시오.
  4. borrower를 펼치고 checkZipcode 서술형 규칙을 두 번 클릭하여 규칙 편집기에서 여십시오.
    규칙의 조건에서 우편번호의 길이를 사용하는 것을 확인할 수 있습니다. 우편번호의 값을 알고자 하므로, 값을 인쇄하기 위한 추적 정보를 추가합니다.
  5. 규칙 플로우 편집기에서 loanvalidation 규칙 플로우로 돌아가십시오.
  6. validation 태스크를 두 번 클릭하십시오.
  7. 특성 보기에서 초기 조치를 선택하십시오. 조치에 BAL 사용을 선택한 채로 유지하십시오.
  8. 대출자 우편번호를 표시하려면 다음 코드를 추가하십시오.

    print "The zip code of the borrower is " + the zip code of the address of 'the borrower' ;

    이 코드는 다음과 같습니다.
    이미지는 인쇄 코드를 표시합니다.
  9. 작업을 저장하십시오.

3단계: 규칙 플로우에서 디버거 실행

디버그 구성을 실행하여 대출자 우편번호 값을 확인하십시오. 널 값을 찾아 널 포인터 예외가 발생하는 위치를 판별합니다.

프로시저

  1. 도구 모음에서 실행 > 디버그 구성 을 클릭하십시오.
  2. run loan validation 구성을 열고 디버그를 클릭하십시오.
  3. 저장 및 실행 대화 상자가 열리면 디버거를 실행하기 전에 확인 을 클릭하여 변경사항을 저장하십시오.
  4. 퍼스펙티브 전환 확인 대화 상자에서 를 클릭하여 디버그 퍼스펙티브를 여십시오.
    디버거는 유효성 검증 규칙 태스크가 시작될 때 이 태스크의 1단계에서 설정한 중단점에서 중지합니다.
  5. 변수 탭에서 borrower 을 펼치십시오.
    latestBankruptcy, spousezipCode에 대해 널 값을 확인하십시오.
    이미지는 대출자 변수를 표시합니다.
  6. 재개 단추 ""를 클릭하십시오.
    콘솔 보기의 결과는 다음 메시지로 시작합니다.이미지는 널 메시지를 표시합니다.

    첫 번째 행은 validation 태스크의 초기 조치에 추가한 추적입니다. checkZipcode 규칙에서 널(null) 우편번호로 인해 자동 예외 처리가 널 포인터 예외를 포착하는 것을 볼 수 있습니다. 조건 파트에 알 수 없는 상태가 있으므로 규칙이 무시됩니다. 비즈니스 사용자에게 구성의 대출자에게 널(null) 우편번호 코드가 있으며 이는 문제가 되지 않는다고 알려줍니다.

    자동 예외 처리는 문제점을 올바르게 처리합니다. 자동 예외 처리에서 발생하는 로깅 정보에 대한 추적을 제거할 수 있습니다. validation 태스크의 초기 조치에 대한 추적을 유지하여 우편번호 값을 가져올 수 있습니다.

    참고: 콘솔은 AEH_LOG 메시지를 두 번 표시합니다. checkZipcode 규칙에 then 조치와 else 조치가 포함되므로, 조건 파트를 두 번 평가하여 두 개의 AEH_LOG 메시지를 생성합니다.
  7. 규칙 Perspective로 전환하십시오.
  8. 실행 > 실행 구성을 클릭하고 run loan validation 구성을 여십시오.
  9. 매개변수 및 인수 탭에서 VM 인수를 삭제하십시오.
  10. 적용을 클릭한 후 실행을 클릭하십시오.
    자동 예외 처리 추적 정보가 더 이상 표시되지 않습니다. 하지만 대출이 여전히 승인되지 않았으므로 수정할 오류가 더 많습니다.
    이미지는 실행 결과를 표시합니다.

다음 수행할 작업

출력에서 월별 상환액 값이 무한값이고 정상이 아님을 알 수 있습니다. 다음 태스크에서는 값을 생성하는 규칙을 찾습니다.