社区应用 最新帖子 精华区 社区服务 会员列表 统计排行 道具中心
主题 : 很多人Rm报错都不知道是什么吧,here!
secondsen 离线
级别: 总版主
显示用户信息 
0  发表于: 2010-01-08   
来源于 其他教程 分类

很多人Rm报错都不知道是什么吧,here!

我是转帖的。。。那个网页已经打不开了。。blog.yam.com/a870053jjkj/article/23984153

魔劍工舖

轉貼本部落文章和圖片請著名出處
,本部落目前以RPG製作大師XP
在做更新與新增,如果有對文章、
腳本…等等問題可以留言發問,只
要我辦得到的話,竟量別問非我設
計的腳本,畢竟非我設計的腳本我
會花較多的時間去理解(也可能會
沒有看懂),非本人設計腳本和我
的腳本發生衝突,而但腳本相當複
雜之時,本人通常不會去整合腳本
附註:別問我製作的遊戲在哪裡喔

人家说了,要注明出处。。我没犯规。。


--------------------------------------------------------------------------------
【NoMemoryError】
若想一次佔有過大的內存時,就會觸發它。

--------------------------------------------------------------------------------
【ScriptError】
用來表示腳本錯誤的異常。

--------------------------------------------------------------------------------
【NotImplementedError】
若調用尚未配備的功能時就會誘發該異常。

--------------------------------------------------------------------------------
【SyntaxError】
若出現語法錯誤時就會引發該異常。

如果此錯誤出現在最後1行時
很有可能是少加或多加了一行【end】腳本

單純語法使用錯誤
這個可能性過多,隨便舉例幾個:
# 拿類本身做些不合裡的代入
self = nil

# unless 無法使用 elsif
a = 0
unless a == 0
  p 1
elsif a == 1
  p 2
end

如果此錯誤出現於任1個【end】的話
因該是括號、數組、哈希表沒有結尾而導致括號括到腳本【end】腳本時發生
a = (12+5
end

此錯誤出現於def方法,並有代參數時
可能是在前面的參數已經用了默認參數(就是如果沒傳這個參數,就視同代入參數中等於右的內容)
前面參數使用默認參數,而後面沒使用默認參數時發生此錯誤
class Sword
  def sword1(a, b) # 不會錯誤
    p a, b
  end
  def sword2(a, b = 0) # 不會錯誤
    p a, b
  end
  def sword3(a = 0, b) # 會錯誤
    p a, b
  end
  def sword4(a = 0, b = 0) # 不會錯誤
    p a, b
  end
end

--------------------------------------------------------------------------------
【StandardError】
在 rescue 部分中,即使沒有給出具體的錯誤類,也可以利用該異常類及其子類來捕捉異常。

--------------------------------------------------------------------------------
【ArgumentError】
若參數個數不對或者參數值錯誤時,就會引發該異常。

wrong number of arguments(x for y)
指定的參數只要輸入y個參數,你卻輸入了x個參數
class Sword
  def main
    update # 錯誤內容:wrong number of arguments(0 for 3)
    update(10) # 錯誤內容:wrong number of arguments(1 for 3)
    update(10, 30) # 錯誤內容:wrong number of arguments(2 for 3)
    update(10, 30, 50) # 不會錯誤(成功執行update方法的內容)
    update(10, 30, 50, 80) # 錯誤內容:wrong number of arguments(4 for 3)
    update(10, 30, 50, 80, 100) # 錯誤內容:wrong number of arguments(5 for 3)
  end
  def update(a, b, c) # 指定該方法需要3個參數(分別代入變量a、b、c之中)
    p a
    p b
    p c
    $scene = Scene_Title.new
  end
end

wrong # of arguments (x for y)
只需要輸入y個參數,你卻輸入了x個(此錯誤可能出現在參數給內部類的可能)
self.contents.fill_rect(1,1, 90, 119, 2, Color.new(255, 255, 0, 255))  

comparison of String with 數值 failed
可能是拿字符串和 [數值] 進行比較
p "Miss" > 0

negative array size (or size too big)
用【.first(單元數目)】獲取數組開頭的單元數目,其指定的單元數目為負數
a = [1, 2, 3]
a.first(-1)

NULL pointer given
可能是調用API時,返回值設定的不正確

bad value for range
可能是範圍指定的開始值或結束值類型錯誤,也就是範圍使用非數值的情況下發生
1..5 # 正確使用方式
1..[5]

comparison of Fixnum with false failed
未知,@input_number_window存入的是事件 [數值輸入處理] 的類
錯誤行數出現在腳本「Interpreter 7」第272行的【result = eval(script)】
@input_number_window = Window_InputNumber.new(6)
@input_number_window.number = 10 < 0 ? @negative = true : @negative = false
# 錯誤行數不再這裡

--------------------------------------------------------------------------------
【IndexError】
若索引超出範圍就會引發該異常。

index 數值 out of sting
可能是嘗試修改空字符串的第 [數值] 個數值發生
a = ''
a[5] = '' #  index 5 out of sting

--------------------------------------------------------------------------------
【IOError】
若 I/O 發生錯誤時就會引發該異常。

not opened for writing
嘗試在讀取模式中修改指定的檔案發生(很類似定義實例變數的異常)
# 假設1235.txt存在的場合
file = File.open('1235.txt') # 沒指定第2個參數,第2個參數預設為"r",也就是讀取模式
Marshal.dump($data_weapons, file)
file.close

--------------------------------------------------------------------------------
【EOFError】
若到達 EOF(End Of File)時就會引發該異常。

End of file reached
可能是在存檔畫面或是讀檔畫面中,腳本嘗試獲取已經損壞的存檔或是空白存檔後發生(可能而已),請檢查看看你的遊戲資料夾中的存檔(存檔的檔案名稱開頭為Save),將有問題的存檔刪除看看(如:0KB大小的存檔),並檢查看看存檔腳本有沒有編寫錯誤或是在其他的地方中進行存檔(例如:腳本是否在標題畫面嘗試存檔,或是其他不合理的位置...等等),或是在存檔的時候有沒有發生什麼錯誤之類的

--------------------------------------------------------------------------------
【LocalJumpError】
控制結構的跳轉點沒有發現時會引發該異常。

no block given
腳本不完全而觸發(大概),簡單來說後面還必須增加一些腳本才行(是規定嗎= =?!)
loop # 必須為:loop do
--------------------------------------------------------------------------------
[1, 2, 3].each # 必須為 [1, 2, 3].each do |i|

--------------------------------------------------------------------------------
【NameError】
若使用未定義的變量或常量時就會觸發該異常。

uninitialized constant 類1::類2
在 [類1] 中代入了 [類2] ,但 [類2] 卻不存在

uninitialized constant 類1::常量
在 [類1] 中代入了沒有定義的 [常量]

undefined method‵方法' for class‵類'
1.在[類]中找不到指定的[方法]
2.使用alias替換[方法]名稱,但[類]繼承了其他的類,而繼承的類中找不到指定的方法

undefined local variadle or method‵contents' for #<Interpreter:0xXXXXXXX>
未知

raise(fatal)undefined local variadle or method‵contents' for #<類1:0xXXXXXXX
@sword_cun=#<類2:0xXXXXXXX>>
未知

uninitialized constant Interpreter::類
可能是呼叫了不存在的[類]

undefined local variable or method‵ 方法' for #<類:0xXXXXXXX>
在 [類] 中呼叫了不存在的 [方法]

--------------------------------------------------------------------------------
【NoMethodError】
若調用了未定義的方法時,就會引發該異常。

undefined method‵ 數學符號' for nil:NilClass
nil(Nil類)中沒有定義這些符號的使用
nil - 0
nil * 0
nil < 0
nil == 0 # 不會錯誤:拿來比較是否和nil值相同是可行的

undefined method‵[]=' for nil:NilClass
將nil當成數組去讀取或是修改指定的單位
a = nil
a[0] = 1

b = []
b[0][0] = 1 # b[0]由於未定義所以視為nil

undefined method‵[]' for nil:NilClasundefined method‵方法' for #<類:0xXXXXXXX>
在[類]中呼叫了未定義的[方法]

super: no superclass method‵方法
可能是使用【super(參數)】腳本傳送參數給父親腳本同名的 [方法]
但是該類的父類同名的 [方法] 沒有指定要參數

undefined method‵方法' for 模塊:Module
可能是呼叫了不存在的 [模塊] 中的 [方法]

undefined method‵ new' for 類:Module
可能是用呼叫類的方式來呼叫模塊
(通常不可能分辨是類還是模塊來進行呼叫,因為類和模塊同名可能會出現錯誤)
module Sword
end
Sword.new

--------------------------------------------------------------------------------
【RangeError】
與範圍有關的異常。在進行超出範圍的數值變換(從 Bignum 變為 Fixnum)等操作時就會引發該異常。

float -1.#IND out of range of integer
未知

bignum too big to convert into‵int'
可能是嘗試在多維數組的任一個單元中存入大量的數值發生(限制真多的數組....)

--------------------------------------------------------------------------------
【FloatDomainError】
若想將正負無窮或 NaN(Not a Number)變為 Bignum,或與 NaN 進行比較時就會引發該異常。

--------------------------------------------------------------------------------
【RegexpError】
若未能成功編譯正則表達式,則引發該異常。

--------------------------------------------------------------------------------
【RuntimeError】
運行時異常。當調用了 raise 卻未指定異常時,就會引發該異常。

Wrong number of parameters: expected x, got y.
可能是呼叫API時,需要y個參數,你卻輸入x個
GetKeyState = Win32API.new("user32","GetAsyncKeyState",%w(l),"l")
a = GetKeyState.call # 錯誤內容:Wrong number of parameters: expected 1, got 0.
b = GetKeyState.call(65) # 不會錯誤

--------------------------------------------------------------------------------
【SystemCallError】
若系統調用失敗的話,就會引發該異常。

--------------------------------------------------------------------------------
【Errno::E2BIG】
參數列表過長。

--------------------------------------------------------------------------------
【Errno::EACCES】
訪問被拒絕。

--------------------------------------------------------------------------------
【Errno::EAGAIN】
除此之外不能再生成進程。

--------------------------------------------------------------------------------
【Errno::EBADF】
非法文件編號。

Bad file descriptor
未知
gets # 也許是F1幫助說明沒教的內部函數的可能...

--------------------------------------------------------------------------------
【Errno::ECHILD】
子進程不存在。

--------------------------------------------------------------------------------
【Errno::EDEADLOCK】
有可能發生資源的死鎖。


--------------------------------------------------------------------------------
【Errno::EDOM】
數字運算函數的參數是超出函數域的值。

Domain error - acos
使用【acos(數值)】時,數值使用了未滿-1或超過1的數值時發生

Domain error - asin
使用【asin(數值)】時,數值使用了未滿-1或超過1的數值時發生


--------------------------------------------------------------------------------
【Errno::EEXIST】
文件已存在。

--------------------------------------------------------------------------------
【Errno::EINVAL】
非法參數。

--------------------------------------------------------------------------------
【Errno::EMFILE】
打開的文件過多。

--------------------------------------------------------------------------------
【Errno::ENOENT】
沒有文件或目錄。

No such file or directory - 檔案路徑
沒有發現檔案 檔案路徑
找尋不到指定的檔案或是圖片,因腳本「Main」第20~24行的設計而改成中文內容

--------------------------------------------------------------------------------
【Errno::ENOEXEC】
可執行文件錯誤。

--------------------------------------------------------------------------------
【Errno::ENOMEM】
內存不足。

--------------------------------------------------------------------------------
【Errno::ENOSPC】
設備剩餘空間不足。

--------------------------------------------------------------------------------
【Errno::ERANGE】
結果過大。

--------------------------------------------------------------------------------
【Errno::EXDEV】
設備間連結。

--------------------------------------------------------------------------------
【SystemStackError】
若棧深度過深的話就會引發該異常。

stack level too deep
可能是無限循環呼叫同個方法時發生
class Sword
  def a
   a
  end
end
Sword.new.a

--------------------------------------------------------------------------------
【TypeError】
若使用了錯誤的類型時,就會引發該異常。

cannot convert nil into String
在不該輸入nil的地方輸入nil

cannot convert true into String
在不該輸入true的地方輸入true

cannot convert false into String
在不該輸入false的地方輸入false

cannot convert Fixnum into String
在不該輸入數值的地方輸入任一數值

cannot convert Bitmap into String
在不該設置圖片的地方設置圖片
  
cannot convert Array into String
在不該輸入數組的地方輸入數組
# ★以窗口文字框為例,窗口的文字都必須設置字除串才可以
# cannot convert nil into String
self.contents.draw_text(0, 0, 180, 32, nil, 0)

# cannot convert true into String
self.contents.draw_text(0, 0, 180, 32, true, 0)

# cannot convert false into String
self.contents.draw_text(0, 0, 180, 32, false, 0)

# cannot convert Fixnum into String
self.contents.draw_text(0, 0, 180, 32, 111, 0)
self.contents.draw_text(0, 0, 180, 32, 111.to_s, 0) # 要顯示數值請加【.to_s】

# cannot convert Bitmap into String
self.contents.draw_text(0, 0, 600, 32, RPG::Cache.icon("001-Weapon01"), 1)
#如要顯示圖片可以使用blt方法
self.contents.blt(0, 0, RPG::Cache.icon("001-Weapon01"), Rect.new(0, 0, 640, 480))

# cannot convert Array into String
self.contents.draw_text(0, 0, 180, 32, ["1","2"], 0)

no implicit conversion from nil to integer
可能是指定了數組中第nil個單元所致
a = [1, 2]
p a[nil]

no marshal_dump is defined for calss Sprite
未知

already 方法 class
不會解釋,我是在嘗試用【include 模塊名】,誤認成左邊為指定的 [方法]
來繼承該模塊的變量,就跑出這樣的錯誤訊息了...

module Sword_a
  A = 1
end
class Sword
  initialize Sword_a # 錯誤內容:already initialized class
  include Sword_a # 正確使用方法
end

類 is not a class
可能是你創建了1個 [類] ,但這個 [類] 的名稱和現有的模塊名稱同名
module Sword
end
class Sword
end

exception class/object expeced
不會解釋,總之就是規定只能使用字符串(請看以下橘色字內容)
raise ('SwordError',"必須是字符串")

superclass must be a Class (Module given)
可能是讓某個類繼承了模塊
module Sword
end
class Sword2 < Sword
end

--------------------------------------------------------------------------------
【ZeroDivisionError】
若將某值除以 0 時,就會引發該異常。

divided by 0
用任意數值除0發生,畢竟任何數值除0跟無限是沒有什麼區別的
30 / 0
a %= 0 # 用%符號求餘數,計算方式和除法一樣,所以會錯誤

--------------------------------------------------------------------------------
【LoadError】
F1幫助說明沒寫出來的異常,目前不明

No such file to load -- 字串內容
未知
require("Sword") #Error: No such file to load -- Sword
--------------------------------------------------------------------------------
load("Sword") #Error: No such file to load -- Sword

--------------------------------------------------------------------------------
【SystemExit】
結束程序的運行。請參考 exit。 (通常此錯誤名稱視為exit)

exit
使用了腳本【exit】或是按遊戲窗口最右上方的X來觸發這個不算錯誤的錯誤!!通常不會有錯誤訊息的窗口出現就直接關閉遊戲

--------------------------------------------------------------------------------
【fatal】
當解釋器內部發生致命性錯誤(內部錯誤)時, 就會引發該異常。通常情況下,在程序中無法看到 fatal對象。

--------------------------------------------------------------------------------
【RGSSError】
通知 RGSS 內部錯誤的異常類。
在 Bitmap 類和 Sprite 類中,訪問已釋放對像等情況下就會發生。

disposed window
釋放(關閉)了不存在的窗口

failed to create bitmap
可能是你設置的窗口寬度或高度小於32

disposed plane
可能是對已經釋放(關閉)或是不存在的窗口進行窗口的操作
例如嘗試更改已經釋放的窗口的不透明度

--------------------------------------------------------------------------------
【其他】
スクリプトがハングアップしました
腳本已經被備份。
XP獨有,遊戲運行時,經過10秒沒使用【Graphics.update】腳本就會出現此訊息

呼叫公用事件超過了限制。
當連續呼叫公共事件達到101以上發生,因腳本「Interpreter 1」第18~21行的設計才顯示

主角初始位置未設定。
VX獨有,當未設定主角初始位置而發生,因腳本「Scene_Title」203~206行而發生

DirectX Audio初始化失敗
可能是沒音效卡或是音效卡的驅動程式不存在,不然就是音效卡或驅動程式出了問題
评价一下你浏览此帖子的感受

精彩

感动

搞笑

开心

愤怒

无聊

灌水
我就是你们的神,庶民们,追随我吧!跟着我一起拖后腿!
拖后腿的人发勋章!
懒de说 离线
级别: ①新人
显示用户信息 
1  发表于: 2011-08-08   
其实百度也是能搜出来的
描述
快速回复

认证码:

验证问题:
12-5=?,答案:7 正确答案:7
按"Ctrl+Enter"直接提交