<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />함수에서 완전히 튀어 나올 수있는 방법이 있습니까? 뭔가가 좋아. 단절() 함수는 for 루프에서 작동합니다. 난 노력 했어 던지다() 그러나 그것은 전체 JSL 스크립트를 중지시킵니다.
나는 종종 Throw ()없이 Try ()에 오류가 발생하기 쉬운 표현을 묶는다. Try () - 함수 내에서 또는 함수 호출 주변에서 "-"배치는 함수의 일부를 이스케이프하거나 예외가 발생했을 때 완전히 이스케이프하고 싶을 때만 달라집니다. Throw ()는 실행을 멈추고 주로 디버깅에 사용하는 경향이 있습니다.
다음 예제와 그 결과를 비교하십시오.
// 함수 내에서 Try ()가 함수의 선택된 부분을 이스케이프하면 스크립트 실행이 계속됩니다.
exsqr = 기능 ( { 엑스 } ,
x2 = 시험 ( 엑스 * 엑스 , "오류, 움직여 라!" ) ;
보여 주다 ( "x가 NaN이더라도 표시" ) ;
x2 ;
) ;
sq = exsqr ( "큐" ) ;
보여 주다 ( sq , "함수 이스케이프가 실패했지만 스크립트가 계속됩니다" ) ;
// try () 함수 호출 escapes 함수를 닫으면 스크립트 실행이 계속됩니다.
exsqr = 기능 ( { 엑스 } ,
x2 = 엑스 * 엑스 ;
보여 주다 ( "x가 NaN 인 경우 표시하지 않음" ) ;
x2 ;
) ;
sq = 시험 ( exsqr ( "큐" ) ) ;
보여 주다 ( sq , "함수 이스케이프가 성공했습니다!" ) ;
// Try ()는 Throw () 함수와 스크립트를 이스케이프합니다.
exsqr = 기능 ( { 엑스 } ,
x2 = 시험 ( 엑스 * 엑스 , 던지다 ( "오류, 여기 멈춰!" || 숯 ( 예외 _ 문자 ) ) ) ;
보여 주다 ( "x가 NaN 인 경우 표시하지 않음" ) ;
) ;
sq = exsqr ( "큐" ) ;
보여 주다 ( sq , "스크립트가 중지되었습니다!" ) ;
return()으로 함수를 종료하려고 하면 오류가 발생합니다.
버튼 상자를 만들면 오류가 발생합니다.
bb = Button Box("SpecsAuto")그런 다음 함수를 첨부하세요
bb << Set Function( Return() )
그런 다음 상자를 클릭하세요.
오류를 재현하는 데모 코드는 다음과 같습니다.
nw = New Window("Win1");
nw << Append(bb = Button Box("SpecsAuto"));
bb << Set Function(
Print("A");
Return();
Print("B");
);
bb << Click();

스크립트에 있는 것처럼 함수가 제공되지 않은 경우에도 set function() 이 작동합니다.
return() 의 마법을 사용하려면 함수 안에 return() 을 넣어야 합니다.
nw = New Window("Win1");
nw << Append(bb = Button Box("SpecsAuto"));
bb << Set function(Function({},
Print("A");
Return();
Print("B");)
);
bb << Click();