亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > 綜合 > 正文

Lua中簡單的錯誤處理實例

2024-07-21 23:04:01
字體:
來源:轉載
供稿:網友

昨天遇到另外一位獨立游戲開發者,所以多聊了一會,然后…然后就沒有看書了。(小若:借口!借口!)
 
今天來聊聊錯誤處理吧,不過畢竟這只是前面的章節,書上的內容似乎有點一筆帶過的味道。

沒關系,簡單更好~

1.紅色警報——error

我們應該能經常看到類似以下的錯誤信息:

復制代碼 代碼如下:

[LUA-print] LUA ERROR: [string "src/main.lua"]:108: [string "src/main.lua"]:89: attempt to index global ‘a' (a nil value)

這是在發生錯誤時給我們的提示,通常,這代表我們的代碼不能繼續正常執行下去了。
 
但你有知不知道,我們可以偽造這種錯誤,沒錯,主動調用error函數,就會出現這種信息。
如下代碼:
復制代碼 代碼如下:

    error("你的智商不多了,趕緊休息,恢復一下吧");

 

然后,運行,輸出如下信息:

復制代碼 代碼如下:

[LUA-print] LUA ERROR: [string "src/main.lua"]:109: [string "src/main.lua"]:96: 你的智商不多了,趕緊休息,恢復一下吧

這太厲害了,以后你看誰不爽,就往他代碼里塞上這句話吧,比如在項目上線前塞進去~
 
言歸正傳,當我們在調用一個函數之前,可以先判斷即將傳遞的參數是否正常,如果不正常,我們就可以選擇直接拋出error,方便寫代碼的過程中發現問題。

 

比如下面的代碼:

 

復制代碼 代碼如下:

    local name = io.read();
    if name ~= "笨木頭" then
        error("你是一個非常善良有愛心的人,我很喜歡你..所以,去死吧!");
    end

 

只要發現輸入的內容不是“笨木頭”,就狠狠地拋出異常。

2.偷個懶——assert

類似剛剛那種判斷錯誤的代碼,似乎有點啰嗦,于是,我們可以用assert代替形如if not then的代碼。

比如上面的代碼改為:

復制代碼 代碼如下:

    local name = io.read();
    local result = assert(name == "笨木頭", "你是一個非常善良有愛心的人,我很喜歡你..所以,去死吧!");

 

如果assert的第一個參數為不為false,則返回第一個參數的值;否則,執行error函數,輸出錯誤信息,錯誤信息的內容為assert的第二個參數。

輸出結果和之前是一樣的~

3.捕獲錯誤代碼——pcall

如果在錯誤發生時,我們不希望代碼停止運行,而是做一些緊急措施,那么,可以使用pcall捕獲錯誤。
如以下代碼:

復制代碼 代碼如下:

    function test()
        print(a[1]);
    end
    if pcall(test) then
        print("正常,呵呵");
    else
        print("哎,函數出錯了,我正在幫你處理,放心吧,等我睡醒就...不是,等你睡醒就沒事了~");
      
    end

 

函數test執行的時候肯定會報錯的,因為并不存在a這個table。
使用pcall調用test函數,如果test不報錯,則pcall返回ture,否則,返回false。
利用這個特性,我們就可以捕獲異常,做一些緊急處理。

運行代碼, 輸出結果如下:

復制代碼 代碼如下:

[LUA-print] 哎,函數出錯了,我正在幫你處理,放心吧,等我睡醒就…不是,等你睡醒就沒事了~
這緊急處理的方式還挺不錯的,呵呵。(小若:不錯你個頭啊!這和沒處理有差別嗎?)

pcall除了會返回true或者false外,還能返回函數的錯誤信息,如下代碼:
復制代碼 代碼如下:

    function test()
        print(a[1]);
    end
    local status, err = pcall(test);
    if status then
        print("正常,呵呵");
    else
        print("哎,函數出錯了,我正在幫你處理,放心吧,等我睡醒就...不是,等你睡醒就沒事了~");
        print(err);
    end

 

pcall的第一個返回值和之前一樣,true或者false。

而第二個參數則是test函數拋出的錯誤信息,執行代碼,結果如下:

復制代碼 代碼如下:

[LUA-print] 哎,函數出錯了,我正在幫你處理,放心吧,等我睡醒就…不是,等你睡醒就沒事了~
[LUA-print] [string "src/main.lua"]:94: attempt to index global ‘a' (a nil value)

 

4.結束

關于錯誤處理,好像沒有什么好玩的東西,所以,就寫這么多吧~

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
www.久久久久久.com| 久久久亚洲福利精品午夜| 日韩a**中文字幕| 久久免费视频在线| 亚洲精品日韩在线| 97视频免费在线观看| 在线日韩日本国产亚洲| 亚洲自拍中文字幕| 青青草原成人在线视频| 视频一区视频二区国产精品| 韩国v欧美v日本v亚洲| 免费91在线视频| 色综合久久悠悠| 欧美一区二粉嫩精品国产一线天| 国产精品免费久久久| 狠狠色香婷婷久久亚洲精品| 欧美日韩国产精品一区二区三区四区| 精品国产一区二区在线| 91高潮精品免费porn| 亚洲国产精品va在看黑人| 亚洲色图av在线| 亚洲xxxx妇黄裸体| 久久久久国产精品免费| 精品综合久久久久久97| 欧美亚洲在线视频| 日韩中文字幕精品| 国产精品久久久久久一区二区| 国产精品第一页在线| 不卡毛片在线看| 亚洲午夜激情免费视频| 欧美午夜性色大片在线观看| 亚洲视频自拍偷拍| 国产精品久久一| 亚洲女人被黑人巨大进入| 日韩欧美在线网址| 一区二区三区无码高清视频| 国产精品欧美一区二区三区奶水| 91美女福利视频高清| 草民午夜欧美限制a级福利片| 国产精品白丝av嫩草影院| 亚洲精品动漫100p| 亚洲男人天堂视频| 中文欧美日本在线资源| 午夜精品一区二区三区在线视| 久久久久久亚洲精品| 日韩av大片免费看| 久久男人av资源网站| 日本欧美黄网站| 38少妇精品导航| 亚洲午夜精品久久久久久久久久久久| 欧洲精品久久久| 日韩视频免费看| 国产经典一区二区| 精品亚洲一区二区三区在线观看| 精品一区二区三区四区在线| 亚洲综合社区网| 高跟丝袜一区二区三区| 久久精品国产亚洲| 成人国产精品av| 欧美一级大片在线免费观看| 亚洲天堂av在线免费观看| 最近2019年中文视频免费在线观看| 久久免费在线观看| 国产精品视频永久免费播放| 国产精品成久久久久三级| 欧美成人精品在线观看| 亚洲国产97在线精品一区| 欧美大片va欧美在线播放| 亚洲成人xxx| 亚洲国产精品久久久久久| 国产一区二区日韩精品欧美精品| 亚洲国产天堂久久综合| 日韩精品福利网站| 亚洲自拍偷拍视频| 日本久久中文字幕| 最近2019中文字幕第三页视频| 亚洲久久久久久久久久久| 日韩在线观看你懂的| 成人福利免费观看| 91九色国产社区在线观看| 4444欧美成人kkkk| 亚洲视频网站在线观看| 日韩免费视频在线观看| 精品一区电影国产| 91亚洲va在线va天堂va国| 韩国欧美亚洲国产| 欧美日韩第一页| 乱亲女秽乱长久久久| 国产精品中文字幕在线观看| 亚洲的天堂在线中文字幕| 欧美xxxx14xxxxx性爽| xxx欧美精品| 欧美激情欧美激情在线五月| 亚洲韩国青草视频| 国产盗摄xxxx视频xxx69| 国产精品扒开腿做爽爽爽视频| 欧美高清在线视频观看不卡| 国产精品扒开腿做爽爽爽的视频| 国产一区二区av| 欧美在线不卡区| 亚洲欧洲一区二区三区在线观看| 亚洲人午夜精品| 欧美成人黄色小视频| 欧美日韩一区二区三区在线免费观看| 九九九热精品免费视频观看网站| 亚洲图片在线综合| 98精品国产高清在线xxxx天堂| 国产精品十八以下禁看| 国产精国产精品| 91精品国产高清久久久久久| 国产日本欧美一区二区三区| 国产在线精品成人一区二区三区| 欧美人与性动交a欧美精品| 国产精品视频专区| 欧美午夜女人视频在线| 国产精品电影久久久久电影网| 欧美日韩一区二区免费视频| 69久久夜色精品国产69乱青草| 国内精品中文字幕| 久久久久久久影视| 国产成人精品电影久久久| 亚洲成人三级在线| 一级做a爰片久久毛片美女图片| 91在线|亚洲| 亚洲第一色中文字幕| 日韩亚洲一区二区| 日韩美女在线观看一区| 成人精品一区二区三区电影免费| 在线观看精品国产视频| 国语自产偷拍精品视频偷| 国产精品免费久久久久久| 亚洲欧美精品一区二区| 久久精品视频中文字幕| 欧美日韩视频免费播放| 欧美日韩国产色视频| 国产精品视频在线播放| 欧洲亚洲妇女av| 欧美激情欧美激情| 欧美激情国产日韩精品一区18| 亚洲一区二区在线播放| 91在线直播亚洲| 91在线观看免费高清完整版在线观看| 国产精自产拍久久久久久蜜| 国产精品视频播放| 色777狠狠综合秋免鲁丝| 亚洲天堂日韩电影| 亚洲国产精品成人精品| 91精品国产自产91精品| 日韩精品999| 国产精品大陆在线观看| 亚洲精品一区二区网址| 在线观看免费高清视频97| 国模精品视频一区二区三区| 亚洲人av在线影院| 美女视频黄免费的亚洲男人天堂| 亚洲欧美在线免费观看| 色多多国产成人永久免费网站| 色狠狠av一区二区三区香蕉蜜桃| 国产97在线视频| 国产精品美女无圣光视频| 国产精品免费电影| 奇米4444一区二区三区| 日韩精品在线免费观看视频| 97热在线精品视频在线观看|