相關(guān)資訊
本類常用軟件
-
福建農(nóng)村信用社手機銀行客戶端下載下載量:584204
-
Windows優(yōu)化大師下載量:416896
-
90美女秀(視頻聊天軟件)下載量:366961
-
廣西農(nóng)村信用社手機銀行客戶端下載下載量:365699
-
快播手機版下載量:325855
這篇文章主要提供給大家分享學習的是關(guān)于JScript運行時錯誤的簡單分析,希望對大家有用。
JScript 運行時錯誤是指當 JScript 腳本試圖執(zhí)行一個系統(tǒng)不能運行的動作時導(dǎo)致的錯誤。當正在運行腳本、計算變量表達式、或者正在動態(tài)分配內(nèi)存時出現(xiàn) JScript 運行時錯誤時。
十進制 | 十六進制 | 說 明 | 十進制 | 十六進制 | 說 明 |
5 | 800A0005 | 非法過程調(diào)用或參數(shù) | 5000 | 800A1388 | 不能給 'this' 賦值 |
6 | 800A0006 | 溢出 | 5001 | 800A1389 | 需要 Number 類型 |
7 | 800A0007 | 內(nèi)存不足 | 5002 | 800A138A | 需要 Function 對象 |
9 | 800A0009 | 下標超界 | 5003 | 800A138B | 不能給函數(shù)返回值賦值 |
10 | 800A000A | 此數(shù)組被固定或臨時鎖定 | 5004 | 800A138C | 不能索引對象 |
11 | 800A000B | 零除錯誤 | 5005 | 800A138D | 需要 String |
13 | 800A000D | 類型失配 | 5006 | 800A138E | 需要 Date 對象 |
14 | 800A000E | 串空間不足 | 5007 | 800A138F | 需要 Object 類型 |
17 | 800A0011 | 不能執(zhí)行所請求的操作 | 5008 | 800A1390 | 非法賦值 |
28 | 800A001C | ?臻g不足 | 5009 | 800A1391 | 未定義標識符 |
35 | 800A0023 | 子過程或函數(shù)未找到 | 5010 | 800A1392 | 需要 Boolean |
48 | 800A0030 | 裝載DLL出錯 | 5011 | 800A1393 | 不能執(zhí)行來自一個自由腳本的代碼 |
51 | 800A0033 | 內(nèi)部出錯 | 5012 | 800A1394 | 需要對象的成員 |
52 | 800A0034 | 壞文件名或數(shù) | 5013 | 800A1395 | 需要 VBArray |
53 | 800A0035 | 文件未找到 | 5014 | 800A1396 | 需要 JScript 對象 |
54 | 800A0036 | 壞文件模式 | 5015 | 800A1397 | 需要 Enumerator 對象 |
55 | 800A0037 | 文件已經(jīng)打開 | 5016 | 800A1398 | 需要正則表達式對象 |
57 | 800A0039 | 設(shè)備I/O錯誤 | 5017 | 800A1399 | 正則表達式語法錯誤 |
58 | 800A003A | 文件已經(jīng)存在 | 5018 | 800A139A | 未預(yù)期的限定符 |
61 | 800A003D | 磁盤空間已滿 | 5019 | 800A139B | 正則表達式中缺少“]” |
62 | 800A003E | 輸入超出文件尾 | 5020 | 800A139C | 正則表達式中缺少“)” |
67 | 800A0043 | 文件太多 | 5021 | 800A139D | 字符集范圍無效 |
68 | 800A0044 | 設(shè)備不可用 | 5022 | 800A139E | 異常拋出,但無法抓住 |
70 | 800A0046 | 權(quán)限禁用 | 5023 | 800A139F | 函數(shù)沒有合法的 Prototype (原型) 對象 |
71 | 800A0047 | 磁盤未準備好 | 5024 | 800A13A0 | 待解碼的 URI 包含有非法字符 |
74 | 800A004A | 不能用不同的驅(qū)動重命名 | 5025 | 800A13A1 | 待解碼的 URI 編碼非法 |
75 | 800A004B | 路徑/文件訪問錯誤 | 5026 | 800A13A2 | 小數(shù)部分的位數(shù)越界 |
76 | 800A004C | 路徑未找到 | 5027 | 800A13A3 | 精度越界 |
91 | 800A005B | 對象變量或With塊變量未設(shè)置 | 5028 | 800A13A4 | 需要 Array 或 arguments 對象 |
92 | 800A005C | For循環(huán)未初始化 | 5029 | 800A13A5 | 數(shù)組長度必須為一有限正整數(shù) |
94 | 800A005E | Null使用無效 | 5030 | 800A13A6 | 必須賦給數(shù)組長度一個有限正數(shù) |
322 | 800A0042 | 不能建立所需的臨時文件 | |||
424 | 800A01A8 | 需要對象 | |||
429 | 800A01A9 | Automation服務(wù)器不能建立對象 | |||
430 | 800A01AE | 類不支持Automation | |||
432 | 800A01B0 | 在Automation操作中找不到文件名或類名 | |||
438 | 800A01B6 | 對象不支持這個屬性或方法 | |||
440 | 800A01B8 | Automation錯誤 | |||
445 | 800S01BD | 對象不支持這個動作 | |||
446 | 800A01BE | 對象不支持指定的參數(shù) | |||
447 | 800A01BF | 對象不支持當前區(qū)域設(shè)置 | |||
448 | 800A01C0 | 指定的參數(shù)未找到 | |||
449 | 800A01C1 | 參數(shù)不可選 | |||
450 | 800A01C2 | 錯誤的參數(shù)數(shù)目或非法屬性分配 | |||
451 | 800A01C3 | 對象不是一個集合 | |||
453 | 800A01C5 | 指定的dll函數(shù)未找到 | |||
458 | 800A01CA | 變量使用了一個Jscript不支持的Automation類型 | |||
462 | 800A01CE | 遠程服務(wù)器機器不存在或不可用 | |||
501 | 800A01F5 | 不能分配給變量 | |||
502 | 800A01F6 | 對象對于腳本不安全 | |||
503 | 800A01F7 | 對象對于初始化不安全 | |||
504 | 800A01F8 | 對象對建立不安全 |
不能給 'this' 賦值
試圖給 this 賦值,this 是 JScript 關(guān)鍵字,表示:
- 當前正在執(zhí)行某個方法的對象,
- 如果沒有當前方法(或該方法不屬于任何其它對象),則是指全局對象。
所謂方法就是由對象調(diào)用的 JScript 函數(shù)。在一個方法內(nèi), this 關(guān)鍵字代表調(diào)用該方法的對象的引用(這種情況下,就是指使用 new 操作符調(diào)用類構(gòu)造函數(shù)所創(chuàng)建的對象)。
在一個方法內(nèi)可以使用 this 來引用當前對象,但不能對其賦予新的值。
要改正此錯誤
- 不要試圖對 this 賦值。要訪問某個實例化對象的屬性或方法,請使用點操作符(例如 circle.radius)。
注意 不能將用戶創(chuàng)建的變量命名為 this;這是一個 JScript 保留字。
需要 Number 類型
試圖對一個不是Number 類型的對象調(diào)用 Number.prototype.toString 或 Number.prototype.valueOf 方法。這種調(diào)用類型的對象必須是Number 類型。
要改正此錯誤
只調(diào)用Number 的Number.prototype.toString or Number.prototype.valueOf 方法。
需要 Function 對象
試圖對一個不是 Function 對象調(diào)用 Function prototype 方法,或者在函數(shù)調(diào)用上下文中使用了對象。例如,下面的代碼將產(chǎn)生該錯誤,因為 foo 不是一個函數(shù)。
var foo = new Object(); // 創(chuàng)建一個稱為 "foo" 的新對象。 var x = foo(); // 試圖將 foo 作為一個函數(shù)加以調(diào)用。
要改正此錯誤
- 只對 Function 對象調(diào)用 Function prototype 方法。
- 確保只使用函數(shù)調(diào)用操作符() 來調(diào)用函數(shù)。
不能給函數(shù)返回值賦
試圖將一個值賦給函數(shù)結(jié)果?梢詫⒑瘮(shù)結(jié)果賦給某個變量,但其本身不能用作變量。如果希望將一個新值賦給該函數(shù)本身,則不要圓括號(函數(shù)調(diào)用操作符)。下面的示例演示了產(chǎn)生這一錯誤的情形。
myFunction() = 42; // 試圖強將 42 賦給該函數(shù)調(diào)用的結(jié)果。
要改正此錯誤
- 不要使用函數(shù)調(diào)用的值作為賦值對象?梢詫⒑瘮(shù)調(diào)用的結(jié)果賦給某個變量。
myVar = myFunction(42);
- 或者,可以將函數(shù)本身(不是其返回數(shù)值)賦給一個變量。
myFunction = new Function("return 42;");
需要 String
試圖對String對象類型之外的其他類型對象調(diào)用String.prototype.toString 或 String.prototype.valueOf 方法。這種調(diào)用的類型必須是 String 類型。
要改正此錯誤
- 在 String 類型對象中只能調(diào)用 String.prototype.toString 或 String.prototype.valueOf 方法
需要 Date 對象
試圖對一個不是Date 類型的對象調(diào)用 Date.prototype.toString 或 Date.prototype.valueOf 方法。這種調(diào)用類型的對象必須是 Date 類型。例如:
var o = new Object; o.f = Date.prototype.toString; o.f();
要改正此錯誤
- 只能對Date 類型的對象調(diào)用 Date.prototype.toString 或者 Date.prototype.valueOf 方法。
需要 Object 類型
試圖對一個不是Object 類型的對象調(diào)用 Object.prototype.toString 或Object.prototype.valueOf 方法。這種調(diào)用類型的對象必須是 Object 類型。
要改正此錯誤
只調(diào)用Object 的 Object.prototype.toString 或 Object.prototype.valueOf 方法。
非法賦值
試圖對一個只讀的標識符賦值。不能對只讀的標識符賦值。例如,主機定義對象和外部 COM 對象。
要改正此錯誤
- 不要賦值給只讀標識符。
未定義標識符
JScript 編譯器不認識試圖使用的標識符。當出現(xiàn)下述情況時,返回未定義值:
- 不存在的變量
- 變量已聲明,但從未對其賦值
- 對象屬性不存在。
要改正此錯誤
- 用 var 語句聲明一個變量(如 var x)。
需要 Boolean
試圖用一個不是 Boolean 類型的對象來調(diào)用 Boolean.prototype.toString 或者 Boolean.prototype.valueOf 方法。這種調(diào)用類型的對象必須是 Boolean 類型。例如:
var o = new Object; o.f = Boolean.prototype.toString; o.f();
要改正此錯誤
- 只使用 Boolean 類型的對象調(diào)用 Boolean.prototype.toString 或 Boolean.prototype.valueOf 方法。
需要對象的成員
試圖對某個對象的數(shù)據(jù)成員執(zhí)行某個操作,但該成員不存在。
要改正此錯誤
- 請確保所輸入的數(shù)據(jù)成員名字是正確的。
需要 VBArray
所提供的對象不是所需要的 Visual Basic 中的 safeArray。
new VBArray(safeArray);
VBArrays 是只讀的,且不能直接被創(chuàng)建。safeArray 參數(shù)為一個 VBArray 值,并且在被傳遞給 VBArray構(gòu)造函數(shù)之前必須獲得一個 VBArray 值。這個值只能通過檢索現(xiàn)有的 ActiveX 或其他對象得到。
要改正此錯誤
- 請確保只將 VBArray 對象傳遞給 VBArray 構(gòu)造函數(shù)。
需要 JScript 對象型
試圖將一個非-JScript 對象傳給需要 JScript對象的內(nèi)置函數(shù)。各種內(nèi)置函數(shù)都需要在 JScript 中定義的對象(與主機定義的對象和控件之類的外部組件相對)。
要改正此錯誤
- 請確保正在作為參數(shù)傳遞的對象具有正確的類型。
需要 Enumerator 對象
試圖對一個非 Enumerator 類型的對象調(diào)用 Enumerator.prototype.atEnd、 Enumerator.prototype.item、 Enumerator.prototype.moveFirst 或者 Enumerator.prototype.moveNext 方法。這種調(diào)用類型的對象必須是 Enumerator 類型。下面是違反這個規(guī)則的代碼示例:
var o = new Object; o.f = Enumerator.prototype.atEnd; o.f();
要改正此錯誤
- 只能對Enumerator 類型的對象調(diào)用其 Enumerator.prototype.atEnd、Enumerator.prototype.item、Enumerator.prototype.moveFirst 或者 Enumerator.prototype.moveNext 方法。要查找某個對象是否為 Enumerator 對象,請使用:
if(x instanceof Enumerator)
需要正則表達式對象
試圖對RegExp類型對象之外的其他對象調(diào)用 RegExp.prototype.toString 或 RegExp.prototype.valueOf方法。這種調(diào)用的類型必須是 RegExp 對象。
要改正此錯誤
- 在 RegExp 對象類型 中,只能調(diào)用RegExp.prototype.toString 或 RegExp.prototype.valueOf 方法
正則表達式語法錯誤
查找字符串的結(jié)構(gòu)違反了一條或多條關(guān)于 JScript 正則表達式的語法規(guī)則。
要改正此錯誤
- 確保正則表達式查找字符串的結(jié)構(gòu)與 JScript 正則字符串的語法一致。
未預(yù)期的限定符
在組織正則表達式的查找模式時,創(chuàng)建了一個帶有非法循環(huán)因子的模式元素。例如,模式
/^+/
是非法的,因為元素 ^(輸入開始)沒有循環(huán)因子。下表列出了沒有循環(huán)因子的元素:
元素 | 描述 |
---|---|
^ | 輸入開始 |
$ | 輸入結(jié)束 |
\b | 詞的邊界 |
\B | 非單詞的邊界 |
* | 零個或多個循環(huán) |
+ | 零個或多個循環(huán) |
? | 零個或多個循環(huán) |
{n} | n 循環(huán) |
{n,} | n 或多個循環(huán) |
{n,m} | 從 n 到 m 循環(huán),包括 m |
要改正此錯誤
- 請確保查找模式元素僅包括合法的循環(huán)因子。
正則表達式中缺少 ']'
試圖創(chuàng)建一個用于正則表達式匹配的字符類,但是沒有右中括號。單個的文字字符組合可以用括號括起來表示一個字符類。一個字符類可以匹配其中包含的任一字符。例如,/[abc]/ 可以匹配字母 “a”, “b”, 或 “c” 的任何一個。
要改正此錯誤
- 給正則表達式加上右中括號。
注意 如果想匹配單中括號,可以使用反斜杠將其轉(zhuǎn)義 - \( - 這樣就不會被JScript 解釋為特殊字符。)
正則表達式中缺少 ')'
試圖創(chuàng)建一個正則表達式捕獲、斷言和組合,但不包括結(jié)束圓括號。正則表達式中的圓括號有多個用途。首先,它們主要用來抓捕子表達式,指定斷言、或?qū)⒛J浇M合,從而通過 *、+、? 等等使這些項被看作一個單一的單位。
要改正此錯誤
- 加上最右邊的結(jié)束圓括號。
注意 如果想匹配單括號,可以使用反斜杠將其轉(zhuǎn)義 - \( - 這樣就不會被 JScript 解釋為特殊字符。)
字符集范圍無效
試圖創(chuàng)建的正則表達式含有無效的字符集范圍。字符集的范圍必須只能是單個字符的變化,諸如a-z 或 0-9;不能在字符集中包括諸如 \w 的字符類。字符集范圍的第一個字符也必須位于范圍中第二個字符的前面。例如:
var good = /[a-z]/; // 有效的字符范圍 - a 在 z 之前。 var notGood = /[z-a]/; // 無效的字符范圍 - z 不在 a 之前。
要改正此錯誤
- 只使用單字符來組合正則表達式字符集,并確保他們具有正確的順序。
異常拋出,但無法抓住
在代碼中包括了一條 throw 語句,但沒有將其包含在某個 try 語句塊內(nèi),或者沒有相關(guān)的 catch 語句塊來捕獲錯誤。異常是在 try 語句塊中使用 throw 語句被拋出,并且應(yīng)該由 try 語句塊外的 catch 語句抓住。
要改正此錯誤
- 用 try 語句塊將可能產(chǎn)生異常的代碼封住,并確保外面有一個相應(yīng)的 catch 語句塊。
- 確認 catch 語句中為正確的異常格式。
- 如果異常被再次拋出,確認存在相應(yīng)的 catch 語句。
函數(shù)沒有合法的 prototype 對象
試圖使用 instanceof 來確定一個對象是否是從某個特定函數(shù)類派生而來,但重新定義的該對象的prototype 屬性要么是空的,要么是外部對象類型(都不是有效的JScript 對象)。外部對象可能來自主機對象模型(例如, Internet Explorer 的產(chǎn)品和 window 產(chǎn)品,或一個外部的COM 對象)。
要改正此錯誤
- 確保函數(shù)的 prototype 屬性引用了合法的 JScript。
待編碼的 URI 包含有非法字符
試圖將字符串編碼得到 URI(通用資源標識符),但是包含非法字符。盡管字符串中的絕大多數(shù)字符都是合法的,可以轉(zhuǎn)換為 URI,但有些 Unicode 字符序列是非法的。
要改正此錯誤
請確保待編碼的字符串只包含合法的 Unicode 序列。
一個完整的 URI 是由一系列部件和分隔符組成的。其通用格式為:
<Scheme>:<first>/<second>;<third>?<fourth>
尖括號內(nèi)的名稱代表部件,而 “:”, “/”, “;” 和 “?” 都是作為分隔符的保留字。
待解碼 URI 的編碼非法
試圖對一個不正確 URI(通用資源標識符)進行解碼。URI 具有特殊的語法;絕大多數(shù)非字母數(shù)字字符在用于 URI 必須加以編碼。可以使用 encodeURI 和 encodeURIComponent 方法從一個標準的 JScript 字符串創(chuàng)建一個 URI。
一個完整的 URI 是由一系列部件和分隔符組成的。其通用格式為:
<Scheme>:<first>/<second>;<third>?<fourth>
尖括號內(nèi)的名稱代表部件,而 “:”, “/”, “;” 和 “?” 都是作為分隔符的保留字。
要改正此錯誤
- 請確保您只需要對合法的 URI 進行解碼。你不能對標準的 JScript 字符串解碼,因為它們可能含有非法字符。
小數(shù)部分的位數(shù)越界
試圖將一個非法參數(shù)傳遞給Number.prototype.toExponential()。函數(shù)toExponential() 的參數(shù)為 0 到 20(含 20)之間。
要改正此錯誤
- 請確保的 toExponential() 不是太大也不是太小。
精度越界
試圖將一個非法參數(shù)傳遞給 Number.prototype.toPrecision。 給 toPrecision 的參數(shù)必須為 1 到 21(含21)之間。
要改正此錯誤
- 請確保 toPrecision 不是太大也不是太小。
需要 Array 或 arguments 對象
沒有將數(shù)組作為參數(shù)。這個錯誤只在 Function.prototype.apply方法中發(fā)生。如果使用這個函數(shù),則該函數(shù)的第二個參數(shù)要么是 Array 對象,要么是 Arguments 對象。
要改正此錯誤
- 指定一個 Array 或 Arguments 對象作為第二個參數(shù)。
數(shù)組長度必須是一個有限正整數(shù)
在調(diào)用 Array 構(gòu)造函數(shù)時使用的參數(shù)不是自然數(shù)(所謂自然數(shù)就是零加上正整數(shù)集合)。
要改正此錯誤
在創(chuàng)建一個新的 Array 對象時只能使用正整數(shù)。如果要創(chuàng)建一個只有一個元素且不是整數(shù)的數(shù)組,請執(zhí)行下面兩步操作。首先,創(chuàng)建一個只有一個元素的數(shù)組,然后將這個值賦給第一個元素 (array[0])。下面的示例將產(chǎn)生這個錯誤。
var piArray = new Array(3.14159);
下面的示例演示了指定一個只有單個數(shù)值元素的數(shù)組的正確方法。
var piArray = new Array(1); piArray [0] = 3.14159;
數(shù)組大小沒有上界限制,但不能超過整數(shù)的最大值(大約為40億)。
必須賦給數(shù)組長度一個有限正整數(shù)
在對現(xiàn)有 Array 對象設(shè)置其 length 屬性時,所指定的數(shù)組長度不是正整數(shù),也不是零。如果給某個 Array 對象的 length 屬性所賦的值時為負數(shù)或不是數(shù)值 (NaN) 時,就會產(chǎn)生這個錯誤。請注意 JScript 會自動將小數(shù)數(shù)值轉(zhuǎn)換為整數(shù)。
要改正此錯誤
將一個正整數(shù)賦給 length 屬性。數(shù)組大小沒有上界限制,但不能超過整數(shù)的最大值(大約為40億)。下面的示例演示了給 Array 對象的 length 屬性賦值的正確方法。
var my_array = new Array(); my_array.length = 99;