免费体验120秒视频_榴莲榴莲榴莲榴莲官网_2021国产麻豆剧果冻传媒入口_一二三四视频社区在线
當前位置:首頁文章首頁 IT學院 IT技術

JScript運行時錯誤的簡單分析

作者:  來源:  發布時間:2011-6-26 11:24:46  點擊:

這篇文章主要提供給大家分享學習的是關于JScript運行時錯誤的簡單分析,希望對大家有用。

JScript 運行時錯誤是指當 JScript 腳本試圖執行一個系統不能運行的動作時導致的錯誤。當正在運行腳本、計算變量表達式、或者正在動態分配內存時出現 JScript 運行時錯誤時。

十進制十六進制說 明十進制十六進制說 明
5800A0005非法過程調用或參數5000800A1388不能給 'this' 賦值
6800A0006溢出5001800A1389需要 Number 類型
7800A0007內存不足5002800A138A需要 Function 對象
9800A0009下標超界5003800A138B不能給函數返回值賦值
10800A000A此數組被固定或臨時鎖定5004800A138C不能索引對象
11800A000B零除錯誤5005800A138D需要 String
13800A000D類型失配5006800A138E需要 Date 對象
14800A000E串空間不足5007800A138F需要 Object 類型
17800A0011不能執行所請求的操作5008800A1390非法賦值
28800A001C棧空間不足5009800A1391未定義標識符
35800A0023子過程或函數未找到5010800A1392需要 Boolean
48800A0030裝載DLL出錯5011800A1393不能執行來自一個自由腳本的代碼
51800A0033內部出錯5012800A1394需要對象的成員
52800A0034壞文件名或數5013800A1395需要 VBArray
53800A0035文件未找到5014800A1396需要 JScript 對象
54800A0036壞文件模式5015800A1397需要 Enumerator 對象
55800A0037文件已經打開5016800A1398需要正則表達式對象
57800A0039設備I/O錯誤5017800A1399正則表達式語法錯誤
58800A003A文件已經存在5018800A139A未預期的限定符
61800A003D磁盤空間已滿5019800A139B正則表達式中缺少“]”
62800A003E輸入超出文件尾5020800A139C正則表達式中缺少“)”
67800A0043文件太多5021800A139D字符集范圍無效
68800A0044設備不可用5022800A139E異常拋出,但無法抓住
70800A0046權限禁用5023800A139F函數沒有合法的 Prototype (原型) 對象
71800A0047磁盤未準備好5024800A13A0待解碼的 URI 包含有非法字符
74800A004A不能用不同的驅動重命名5025800A13A1待解碼的 URI 編碼非法
75800A004B路徑/文件訪問錯誤5026800A13A2小數部分的位數越界
76800A004C路徑未找到5027800A13A3精度越界
91800A005B對象變量或With塊變量未設置5028800A13A4需要 Array 或 arguments 對象
92800A005CFor循環未初始化5029800A13A5數組長度必須為一有限正整數
94800A005ENull使用無效5030800A13A6必須賦給數組長度一個有限正數
322800A0042不能建立所需的臨時文件
424800A01A8需要對象
429800A01A9Automation服務器不能建立對象
430800A01AE類不支持Automation
432800A01B0在Automation操作中找不到文件名或類名
438800A01B6對象不支持這個屬性或方法
440800A01B8Automation錯誤
445800S01BD對象不支持這個動作
446800A01BE對象不支持指定的參數
447800A01BF對象不支持當前區域設置
448800A01C0指定的參數未找到
449800A01C1參數不可選
450800A01C2錯誤的參數數目或非法屬性分配
451800A01C3對象不是一個集合
453800A01C5指定的dll函數未找到
458800A01CA變量使用了一個Jscript不支持的Automation類型
462800A01CE遠程服務器機器不存在或不可用
501800A01F5不能分配給變量
502800A01F6對象對于腳本不安全
503800A01F7對象對于初始化不安全
504800A01F8對象對建立不安全
 
不能給 'this' 賦值

試圖給 this 賦值,this 是 JScript 關鍵字,表示:

  • 當前正在執行某個方法的對象,
  • 如果沒有當前方法(或該方法不屬于任何其它對象),則是指全局對象。

所謂方法就是由對象調用的 JScript 函數。在一個方法內, this 關鍵字代表調用該方法的對象的引用(這種情況下,就是指使用 new 操作符調用類構造函數所創建的對象)。

在一個方法內可以使用 this 來引用當前對象,但不能對其賦予新的值。

要改正此錯誤

  • 不要試圖對 this 賦值。要訪問某個實例化對象的屬性或方法,請使用點操作符(例如 circle.radius)。

注意 不能將用戶創建的變量命名為 this;這是一個 JScript 保留字。


需要 Number 類型

試圖對一個不是Number 類型的對象調用 Number.prototype.toStringNumber.prototype.valueOf 方法。這種調用類型的對象必須是Number 類型。

要改正此錯誤

只調用Number Number.prototype.toString or Number.prototype.valueOf 方法。


需要 Function 對象

試圖對一個不是 Function 對象調用 Function prototype 方法,或者在函數調用上下文中使用了對象。例如,下面的代碼將產生該錯誤,因為 foo 不是一個函數。

var foo = new Object();  // 創建一個稱為 "foo" 的新對象。  var x = foo();  // 試圖將 foo 作為一個函數加以調用。

要改正此錯誤

  • 只對 Function 對象調用 Function prototype 方法。
  • 確保只使用函數調用操作符() 來調用函數。

不能給函數返回值賦

試圖將一個值賦給函數結果。可以將函數結果賦給某個變量,但其本身不能用作變量。如果希望將一個新值賦給該函數本身,則不要圓括號(函數調用操作符)。下面的示例演示了產生這一錯誤的情形。

myFunction() = 42;  // 試圖強將 42 賦給該函數調用的結果。

要改正此錯誤

  • 不要使用函數調用的值作為賦值對象。可以將函數調用的結果賦給某個變量
myVar = myFunction(42);
  • 或者,可以將函數本身(不是其返回數值)賦給一個變量。
myFunction = new Function("return 42;");

需要 String

試圖對String對象類型之外的其他類型對象調用String.prototype.toStringString.prototype.valueOf 方法。這種調用的類型必須是 String 類型。

要改正此錯誤

  • String 類型對象中只能調用 String.prototype.toStringString.prototype.valueOf 方法

需要 Date 對象

試圖對一個不是Date 類型的對象調用 Date.prototype.toStringDate.prototype.valueOf 方法。這種調用類型的對象必須是 Date 類型。例如:

var o = new Object;  o.f = Date.prototype.toString;  o.f();

要改正此錯誤

  • 只能對Date 類型的對象調用 Date.prototype.toString 或者 Date.prototype.valueOf 方法。

需要 Object 類型

試圖對一個不是Object 類型的對象調用 Object.prototype.toStringObject.prototype.valueOf 方法。這種調用類型的對象必須是 Object 類型。

要改正此錯誤

只調用Object Object.prototype.toStringObject.prototype.valueOf 方法。


非法賦值

試圖對一個只讀的標識符賦值。不能對只讀的標識符賦值。例如,主機定義對象和外部 COM 對象。

要改正此錯誤

  • 不要賦值給只讀標識符。

未定義標識符

JScript 編譯器不認識試圖使用的標識符。當出現下述情況時,返回未定義值:

  • 不存在的變量
  • 變量已聲明,但從未對其賦值
  • 對象屬性不存在。

要改正此錯誤

  • var 語句聲明一個變量(如 var x)。

需要 Boolean

試圖用一個不是 Boolean 類型的對象來調用 Boolean.prototype.toString 或者 Boolean.prototype.valueOf 方法。這種調用類型的對象必須是 Boolean 類型。例如:

var o = new Object;  o.f = Boolean.prototype.toString;  o.f();

要改正此錯誤

  • 只使用 Boolean 類型的對象調用 Boolean.prototype.toStringBoolean.prototype.valueOf 方法

需要對象的成員

試圖對某個對象的數據成員執行某個操作,但該成員不存在。

要改正此錯誤

  • 請確保所輸入的數據成員名字是正確的。

需要 VBArray

所提供的對象不是所需要的 Visual Basic 中的 safeArray。

new VBArray(safeArray);

VBArrays 是只讀的,且不能直接被創建。safeArray 參數為一個 VBArray 值,并且在被傳遞給 VBArray構造函數之前必須獲得一個 VBArray 值。這個值只能通過檢索現有的 ActiveX 或其他對象得到。

要改正此錯誤

  • 請確保只將 VBArray 對象傳遞給 VBArray 構造函數。

需要 JScript 對象型

試圖將一個非-JScript 對象傳給需要 JScript對象的內置函數。各種內置函數都需要在 JScript 中定義的對象(與主機定義的對象和控件之類的外部組件相對)。

要改正此錯誤

  • 請確保正在作為參數傳遞的對象具有正確的類型。

需要 Enumerator 對象

試圖對一個非 Enumerator 類型的對象調用 Enumerator.prototype.atEnd、 Enumerator.prototype.item、 Enumerator.prototype.moveFirst 或者 Enumerator.prototype.moveNext 方法。這種調用類型的對象必須是 Enumerator 類型。下面是違反這個規則的代碼示例:

var o = new Object;  o.f = Enumerator.prototype.atEnd;  o.f();

要改正此錯誤

  • 只能對Enumerator 類型的對象調用其 Enumerator.prototype.atEnd、Enumerator.prototype.item、Enumerator.prototype.moveFirst 或者 Enumerator.prototype.moveNext 方法。要查找某個對象是否為 Enumerator 對象,請使用:
    if(x instanceof Enumerator)

需要正則表達式對象

試圖對RegExp類型對象之外的其他對象調用 RegExp.prototype.toString RegExp.prototype.valueOf方法。這種調用的類型必須是 RegExp 對象。

要改正此錯誤

  • RegExp 對象類型 中,只能調用RegExp.prototype.toStringRegExp.prototype.valueOf 方法

正則表達式語法錯誤

查找字符串的結構違反了一條或多條關于 JScript 正則表達式的語法規則。

要改正此錯誤

  • 確保正則表達式查找字符串的結構與 JScript 正則字符串的語法一致。

未預期的限定符

在組織正則表達式的查找模式時,創建了一個帶有非法循環因子的模式元素。例如,模式

    /^+/    

是非法的,因為元素 ^(輸入開始)沒有循環因子。下表列出了沒有循環因子的元素:

元素描述
^輸入開始
$輸入結束
\b詞的邊界
\B非單詞的邊界
*零個或多個循環
+零個或多個循環
?零個或多個循環
{n}n 循環
{n,}n 或多個循環
{n,m}從 n 到 m 循環,包括 m

要改正此錯誤

  • 請確保查找模式元素僅包括合法的循環因子。

正則表達式中缺少 ']'

試圖創建一個用于正則表達式匹配的字符類,但是沒有右中括號。單個的文字字符組合可以用括號括起來表示一個字符類。一個字符類可以匹配其中包含的任一字符。例如,/[abc]/ 可以匹配字母 “a”, “b”, 或 “c” 的任何一個。

要改正此錯誤

  • 給正則表達式加上右中括號。

注意 如果想匹配單中括號,可以使用反斜杠將其轉義 - \( - 這樣就不會被JScript 解釋為特殊字符。)


正則表達式中缺少 ')'

試圖創建一個正則表達式捕獲、斷言和組合,但不包括結束圓括號。正則表達式中的圓括號有多個用途。首先,它們主要用來抓捕子表達式,指定斷言、或將模式組合,從而通過 *、+、? 等等使這些項被看作一個單一的單位。

要改正此錯誤

  • 加上最右邊的結束圓括號。

注意 如果想匹配單括號,可以使用反斜杠將其轉義 - \( - 這樣就不會被 JScript 解釋為特殊字符。)


字符集范圍無效

試圖創建的正則表達式含有無效的字符集范圍。字符集的范圍必須只能是單個字符的變化,諸如a-z 或 0-9;不能在字符集中包括諸如 \w 的字符類。字符集范圍的第一個字符也必須位于范圍中第二個字符的前面。例如:

var good = /[a-z]/;  // 有效的字符范圍 - a 在 z 之前。  var notGood = /[z-a]/;  // 無效的字符范圍 - z 不在 a 之前。

要改正此錯誤

  • 只使用單字符來組合正則表達式字符集,并確保他們具有正確的順序。

異常拋出,但無法抓住

在代碼中包括了一條 throw 語句,但沒有將其包含在某個 try 語句塊內,或者沒有相關的 catch 語句塊來捕獲錯誤。異常是在 try 語句塊中使用 throw 語句被拋出,并且應該由 try 語句塊外的 catch 語句抓住。

要改正此錯誤

  • try 語句塊將可能產生異常的代碼封住,并確保外面有一個相應的 catch 語句塊。
  • 確認 catch 語句中為正確的異常格式。
  • 如果異常被再次拋出,確認存在相應的 catch 語句。

函數沒有合法的 prototype 對象

試圖使用 instanceof 來確定一個對象是否是從某個特定函數類派生而來,但重新定義的該對象的prototype 屬性要么是空的,要么是外部對象類型(都不是有效的JScript 對象)。外部對象可能來自主機對象模型(例如, Internet Explorer 的產品和 window 產品,或一個外部的COM 對象)。

要改正此錯誤

  • 確保函數的 prototype 屬性引用了合法的 JScript。

待編碼的 URI 包含有非法字符

試圖將字符串編碼得到 URI(通用資源標識符),但是包含非法字符。盡管字符串中的絕大多數字符都是合法的,可以轉換為 URI,但有些 Unicode 字符序列是非法的。

要改正此錯誤

請確保待編碼的字符串只包含合法的 Unicode 序列。

一個完整的 URI 是由一系列部件和分隔符組成的。其通用格式為:

<Scheme>:<first>/<second>;<third>?<fourth>

尖括號內的名稱代表部件,而 “:”, “/”, “;” 和 “?” 都是作為分隔符的保留字。


待解碼 URI 的編碼非法

試圖對一個不正確 URI(通用資源標識符)進行解碼。URI 具有特殊的語法;絕大多數非字母數字字符在用于 URI 必須加以編碼。可以使用 encodeURIencodeURIComponent 方法從一個標準的 JScript 字符串創建一個 URI。

一個完整的 URI 是由一系列部件和分隔符組成的。其通用格式為:

<Scheme>:<first>/<second>;<third>?<fourth>

尖括號內的名稱代表部件,而 “:”, “/”, “;” 和 “?” 都是作為分隔符的保留字。

要改正此錯誤

  • 請確保您只需要對合法的 URI 進行解碼。你不能對標準的 JScript 字符串解碼,因為它們可能含有非法字符。

小數部分的位數越界

試圖將一個非法參數傳遞給Number.prototype.toExponential()。函數toExponential() 的參數為 0 到 20(含 20)之間。

要改正此錯誤

  • 請確保的 toExponential() 不是太大也不是太小。

精度越界

試圖將一個非法參數傳遞給 Number.prototype.toPrecision。 給 toPrecision 的參數必須為 1 到 21(含21)之間。

要改正此錯誤

  • 請確保 toPrecision 不是太大也不是太小。

需要 Array 或 arguments 對象

沒有將數組作為參數。這個錯誤只在 Function.prototype.apply方法中發生。如果使用這個函數,則該函數的第二個參數要么是 Array 對象,要么是 Arguments 對象。

要改正此錯誤

  • 指定一個 Array 或 Arguments 對象作為第二個參數。

數組長度必須是一個有限正整數

在調用 Array 構造函數時使用的參數不是自然數(所謂自然數就是零加上正整數集合)。

要改正此錯誤

在創建一個新的 Array 對象時只能使用正整數。如果要創建一個只有一個元素且不是整數的數組,請執行下面兩步操作。首先,創建一個只有一個元素的數組,然后將這個值賦給第一個元素 (array[0])。下面的示例將產生這個錯誤。

var piArray = new Array(3.14159);

下面的示例演示了指定一個只有單個數值元素的數組的正確方法。

var piArray = new Array(1);  piArray [0] = 3.14159;

數組大小沒有上界限制,但不能超過整數的最大值(大約為40億)。


必須賦給數組長度一個有限正整數

在對現有 Array 對象設置其 length 屬性時,所指定的數組長度不是正整數,也不是零。如果給某個 Array 對象的 length 屬性所賦的值時為負數或不是數值 (NaN) 時,就會產生這個錯誤。請注意 JScript 會自動將小數數值轉換為整數。

要改正此錯誤

將一個正整數賦給 length 屬性。數組大小沒有上界限制,但不能超過整數的最大值(大約為40億)。下面的示例演示了給 Array 對象的 length 屬性賦值的正確方法。

var my_array = new Array();  my_array.length = 99;

相關軟件

相關文章

文章評論

軟件按字母排列: A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
免费体验120秒视频_榴莲榴莲榴莲榴莲官网_2021国产麻豆剧果冻传媒入口_一二三四视频社区在线
主站蜘蛛池模板: 香艳69xxxxx有声小说| 翁熄系列乱老扒bd在线播放| 亚洲精品亚洲人成在线观看| 91亚洲国产在人线播放午夜 | 天堂а√8在线最新版在线| 亚洲人成网站免费播放| 日日摸日日碰夜夜爽亚洲| 被公侵犯肉体的中文字幕| 波多野结衣在线观看一区| 久久伊人精品| 内射极品少妇XXXXXHD| 丰满女人又爽又紧又丰满| 国产三级精品视频| 好吊色青青青国产综合在线观看| 国产精品视频一区二区噜噜| 性做久久久久久免费观看| 国产乱子经典视频在线观看| 免费超爽大片黄| 亚洲va在线∨a天堂va欧美va| 六月丁香婷婷色狠狠久久| 欧美人与动人物姣配xxxx| 无遮挡边吃摸边吃奶边做| 狠狠躁夜夜躁人人爽天天不| 亚洲AV无码专区国产乱码DVD| 成在人线av无码免费高潮水| 台湾无码一区二区| 亚洲国产成人精品无码区在线观看| 久久精品亚洲一区二区三区浴池| 天堂√最新版中文在线| 少妇BBW搡BBBB搡BBBB| 国产乱码1卡二卡3卡四卡| 日本网站免费| 免费在线观看国产| 老师的被到爽羞羞漫画| 成人做受120视频试看| 天堂久久久久va久久久久| 露脸囗交30| 久久精品日日躁精品| 成人性生活免费视频| 波多野结衣欲乱| 九条满番号|