疑難排解 Windows 執行階段錯誤 (HTML)

Applies to Windows and Windows Phone

當您在 JavaScript 中使用 Windows 執行階段非同步方法時,您可能必須對非同步方法擲回的錯誤進行偵錯。在某些情況下,您甚至可能不會注意到已呼叫非同步方法,因為它發生在呼叫堆疊的深處。

當您在偵錯模式中執行應用程式,而 Windows 執行階段非同步方法擲回錯誤時,JavaScript Error 物件會包含兩個特殊屬性:Error.asyncOpType Error.asyncOpSource。您可以使用它們來判斷非同步方法的名稱,以及產生非同步操作的程式碼位置。

下列程式碼會在按一下事件的事件處理常式中引發錯誤「系統找不到指定的檔案」。



<!-- WARNING: This code raises an error. -->
<div id="divId" >
    <button id="clicker">Click Me</button>
</div>
<script type="text/javascript">
    var clicker = document.getElementById("clicker");
    clicker.style.backgroundColor = "red";
    clicker.addEventListener("click", clickHandler);

    var clickDiv = document.getElementById("divId");

    function clickHandler(ev) {
        Windows.Storage.ApplicationData.current.localFolder.getItemAsync("notAFile").then(
            function (complete) {
                clickDiv.innerText = complete.name;
            },
            function (error) {
                clickDiv.innerText =  
                error.asyncOpSource.stack + " called " + error.asyncOpType;
        });
    }
</script>
        

當您執行此程式碼時,產生的 DIV 文字應為 "at clickHandler (ms-appx://<GUID>/default.html:<lineNumber>:<columnNumber>) called Windows.Foundation.IAsyncOperation`1<Windows.Storage.IStorageItem>"。

如需特殊的錯誤屬性的詳細資訊,請參閱非同步 Windows 執行階段方法中的特殊錯誤屬性

 

 

顯示:
© 2015 Microsoft