try()와 throw()... 이해가 안 돼요나는 try() 및 throw()를 사용하기 위해 실제로 시도했지만(말장난 의도 없음) 내가 읽은 방식대로 작동하지 않는 것 같습니다.
값 및 매개변수 열이 있는 데이터 세트가 있습니다. 스크립트를 실행하고 이 데이터 세트에 많은 작업을 수행하고 싶지만 해당 열이 있는 경우에만 가능합니다. 이러한 경우에 try() 및 throw()를 사용하는 방법이나 사용해야 하는지 설명해줄 사람이 있습니까?
스크립트는 다음과 같아야 합니까?
mydt=current data table();
if (
try(
Column (mydt, "Value") & Column (mydt, "Parameter"),
throw("Value and Parameter columns do not exist");
);
rest of script;
);
아니면 이거?
mydt=current data table();
try(
Column (mydt, "Value") & Column (mydt, "Parameter");
rest of script,
throw("Value and Parameter columns do not exist");
);
Re: try() 및 throw()... 이해가 안 돼요모두에게 감사하고 싶습니다. 여러분의 도움으로 저는 try() 및 throw()를 훨씬 더 잘 이해할 수 있었고 스크립트의 여러 영역에서 성공적으로 사용할 수 있었습니다.
많은 감사,
히스
Re: try() 및 throw()... 이해가 안 돼요Try를 사용하는 대신 명시적으로 열이 있는지 확인할 수 있습니다.
dt = open("$sample_data\Big Class.jmp");
col_list = dt << get column names(string);
if (!contains(col_list, "Value") | !contains(col_list("Parameters")),
nw = new window("Missing columns", << modal(),
text box("Value and Parameter columns do not exist")
);
throw("Value and Parameter columns do not exist");
);
Re: try() 및 throw()... 이해가 안 돼요Trow() 함수는 이러한 방식으로 사용될 때 스크립트 실행을 중지하고 인용된 문자열을 로그에 기록합니다. 또한 Window 액션에서 Throw()가 생성되면 경고 창도 메시지와 함께 나타납니다.
해당 열이 없을 때 스크립트 실행을 중지하려면 Throw() 함수를 사용하면 됩니다. Try 내에 스크립트의 나머지 부분을 포함하거나 try 후에 포함할 수 있습니다. 어느 쪽이든 오류가 발생하면 스크립트가 실행을 중지합니다.
또한 아래 코드 섹션을 사용하면 열이 존재하더라도 AND(&) 열을 함께 사용하여 아무 것도 반환할 수 없기 때문에 실패합니다. 오류 메시지는 "'And' 액세스 또는 평가에서 인수를 숫자[또는 행렬]로 변환할 수 없습니다."입니다.
Column (mydt, "Value") & Column (mydt, "Parameter");
아래의 이 예는 Big Class 테이블이 열릴 때 로그에 "나머지 스크립트"를 인쇄하고 그렇지 않은 경우 로그에 메시지를 표시합니다. 존재하는지 테스트하기 위해 두 열에 대한 참조를 방금 포함했습니다.
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA\Big Class.jmp" );
Try(
Column( dt, "height" );
Column( dt, "weight" );
,
Throw( "height and weight columns do not exist" )
);
Print( "rest of script" );
Re: try() 및 throw()... 이해가 안 돼요나는 당신이 정말로하고 싶은 것은 다음과 같다고 생각합니다.
If(
Try( Column( mydt, "Value" ) << get name, "" ) == "" |
Try( Column( mydt, "Parameter" ) << get name, "" ) == "",
Throw( "Value and Parameter columns do not exist" ),
rest of script
);
Try 기능을 사용하면 작업을 수행할 수 있으며 실패하더라도 처리가 중지되지 않습니다.또한 Try에서 실패 조건을 찾은 경우 반환되는 두 번째 매개 변수를 설정할 수 있습니다.
따라서 위의 스크립트는 변수 "value"가 존재하지 않는 경우 ""를 반환하고 변수 "Parameter"가 존재하지 않고 OR "|" 절이 사용되면 전체 비교 결과는 두 변수 중 하나라도 발견되지 않으면 참이 됩니다.결과가 참이면 Throw() 함수가 실행되고 그렇지 않으면 나머지 코드가 실행됩니다.
Re: try() 및 throw()... 이해가 안 돼요답변이 매우 좋습니다! 감사합니다 ~ 厉害了:thumbs_up: