QML 파일에 오류를 기록하는 (선언적) 줄이 있으며 오류를 포착하고 특정 변수를 기록하여 무슨 일이 일어나고 있는지 파악하고 싶습니다. 줄은 다음과 같습니다 ( Repeater
따라서 사용에 포함됨 index
).
a: ((n === -1) || (n - p > 7) || (index >= t)) ? "" : b[p+index].c
(아니요, 그것들은 제 실제 변수 이름 이 아닙니다. 정보 유출을 막기 위해 이름을 변경했습니다. 실제 이름은 중요하지 않습니다).
코드를 실행할 때 가끔 오류가 발생합니다.
file:///path/to/SomeFile.qml:7: TypeError: Cannot read property 'c' of undefined
a
필드가 다른 변수를 기반으로 수정 될 때 이러한 변수 중 하나가 어떻게 든 잘못되었다고 믿게 만듭니다.
나는 알고있다 try/catch
에 procudural QML 코드 그러나 나는 선언적 코드와 유사한 (또는 그것이 가능하다면) 일을하는 방법을 모르겠어요.
그 오류를 포착하고 오류가 발생했을 때 존재하는 모든 관련 변수를 인쇄하는 방법이 있습니까?
질문을 이해하지 못할 수도 있지만 a:
할당은 함수의 결과이거나 일부 값을 반환하는 JS 코드 블록 일 수도 있습니다. 따라서 해당 문제에 대해 try / catch 또는 다른 것을 자유롭게 사용할 수 있습니다.
a: {
try {
return ((n === -1) || (n - p > 7) || (index >= t)) ? "" : b[p+index].c;
}
catch(e) {
console.log(e);
return "FUBAR";
}
}
ADDED : return
키워드는 실제로 여기에서 선택 사항이며 키워드 없이도 잘 작동합니다.
또한 지적 할 사항 :
a: ((n === -1) || (n - p > 7) || (index >= t)) ? "" : b[p+index].c;
다음과 같습니다.
a: { ((n === -1) || (n - p > 7) || (index >= t)) ? "" : b[p+index].c; }
중괄호는 한 줄 식의 경우 단순히 선택 사항입니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다