lua学习(三)

错误处理

assert断言

  • 作用:确保某些数据是符合预期的,避免影响最终结果。

  • 格式:assert(条件语句,报错信息)
    当条件语句为true时,assert语句不会有任何行为,但是当为false时,assert会将报错信息弹出,并中断程序的执行。

  • 注意:由于断言只在调试模式下有效,因此在生产环境中通常会被禁用,以避免影响程序性能‌。

error

  • 功能:主动发起错误并终止正在执行的函数,并返回message的内容作为错误信息。

pcall

在这里插入图片描述

pcall以一种"保护模式"来调用第一个参数,如果遇到报错,就会返回false及报错信息,因此pcall可以捕获函数执行中的任何错误。

pcall(function, 传给函数的参数)pcall(function(i) print(i) end, 22)  -- 输出:22-- 当函数报错时,会返回false,报错信息
local result, err = pcall(function(i) print(i) error("error") end, 22)

在这里插入图片描述

xpcall

参数:待执行函数,错误处理函数,传给待处理函数的参数
作用:通常在错误发生时,希望落得更多的调试信息,而不只是发生错误的位置。但pcall返回时,它已经销毁了调用桟的部分内容,Lua提供了xpcall函数,xpcall接收一个错误处理函数,当错误发生时,Lua会在调用桟展开前调用错误处理函数,于是就可以在这个函数中使用debug库来获取关于错误的额外信息了。

xpcall(function(i) print(i) error('error..') end, function() print(debug.traceback()) end, 33)

在这里插入图片描述

热更

虚拟机

垃圾回收机制

实现了一个增量标记-扫描收集器。 它使用这两个数字来控制垃圾收集循环: 垃圾收集器间歇率和垃圾收集器步进倍率。 这两个数字都使用百分数为单位 (例如:值 100 在内部表示 1 )。

垃圾收集器间歇率控制着收集器需要在开启新的循环前要等待多久。 当这个值比 100 小的时候,收集器在开启新的循环前不会有等待。 设置这个值为 200 就会让收集器等到总内存使用量达到 之前的两倍时才开始新的循环。

垃圾收集器步进倍率控制着收集器运作速度相对于内存分配速度的倍率。 增大这个值不仅会让收集器更加积极,还会增加每个增量步骤的长度。 不要把这个值设得小于 100 , 那样的话收集器就工作的太慢了以至于永远都干不完一个循环。 默认值是 200 ,这表示收集器以内存分配的"两倍"速工作。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/36098.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于eNSP的IPV4和IPV6企业网络规划

基于eNSP的IPV4和IPV6企业网络规划 前言网络拓扑设计功能设计技术详解一、网络设备基础配置二、虚拟局域网(VLAN)与广播域划分三、冗余协议与链路故障检测四、IP地址自动分配与DHCP相关配置五、动态路由与安全认证六、广域网互联及VPN实现七、网络地址转…

优选算法合集————双指针(专题四)

1,一维前缀和模版 题目描述: 描述 给定一个长度为n的数组a1,a2,....ana1​,a2​,....an​. 接下来有q次查询, 每次查询有两个参数l, r. 对于每个询问, 请输出alal1....aral​al1​....ar​ 输入描述: 第一行包含两个整数n和q. 第二行…

Web3游戏行业报告

一,gamefi经济 什么是gamefi GameFi是一个缩写,它结合了游戏和去中心化金融(“DeFi”)这两个术语,关注的是游戏玩法如何在去中心化系统中实现货币化。对于游戏而言,只要开放了交易市场,允许玩家自由买卖,…

【程序人生】成功人生架构图(分层模型)

文章目录 ⭐前言⭐一、根基层——价值观与使命⭐二、支柱层——健康与能量⭐三、驱动层——学习与进化⭐四、网络层——关系系统⭐五、目标层——成就与财富⭐六、顶层——意义与传承⭐外层:调节环——平衡与抗风险⭐思维导图 标题详情作者JosieBook头衔CSDN博客专家…

拖拽实现+摇杆实现

拖拽实现 拖拽事件实现: 半透明渐变贴图在ios设备下,使用压缩会造成图片质量损失,所以可以将半透明渐变UI切片单独制作真彩色图集 拖拽事件组 IBeginDragHandler:检测到射线后,当拖拽动作开始时执行一次回调函数 IDragHandler:拖拽开始后&a…

vs2017版本与arcgis10.1的ArcObject SDK for .NET兼容配置终结解决方案

因电脑用的arcgis10.1,之前安装的vs2010正常能使用AO和AE,安装vs2017后无法使用了,在重新按照新版本arcgis engine或者arcObject费时费力,还需要重新查找资源。 用vs2017与arc10.1的集成主要两个问题,1:安装后vs中没有…

C语言和C++到底有什么关系?

C 读作“C 加加”,是“C Plus Plus”的简称。 顾名思义,C 就是在 C 语言的基础上增加了新特性,玩出了新花样,所以才说“Plus”,就像 Win11 和 Win10、iPhone 15 和 iPhone 15 Pro 的关系。 C 语言是 1972 年由美国贝…

企业微信群聊机器人开发

拿到机器人hook 机器人开发文档 https://developer.work.weixin.qq.com/document/path/91770

AT指令集-NBIOT

是什么? 窄带物联网(Narrow Band Internet of Things, NB-IoT)成为万物互联网络的一个重要分支支持低功耗设备在广域网的蜂窝数据连接,也被叫作低功耗广域网(LPWAN)NB-IoT支持待机时间长、对网络连接要求较高设备的高效连接NB-Io…

网络爬虫【爬虫库urllib】

我叫不三不四,很高兴见到大家,欢迎一起学习交流和进步 今天来讲一讲爬虫 urllib介绍 Urllib是Python自带的标准库,无须安装,直接引用即可。 Urllib是一个收集几个模块来使用URL的软件包,大致具备以下功能。 ● urlli…

vue中js简单创建一个事件中心/中间件/eventBus

vue中js简单创建一个事件中心/中间件/eventBus 目录结构如下: eventBus.js class eventBus {constructor() {this.events {};}// 监听事件on(event, callback) {if (!this.events[event]) {this.events[event] [];}this.events[event].push(callback);}// 发射…

弹球小游戏-简单开发版

一、需求 弹球小游戏是一个简单的互动游戏,玩家需要控制一个挡板在窗口底部左右移动,以接住从上方落下的球。游戏的主要需求包括: (1) 游戏界面 :创建一个指定尺寸的游戏窗口,显示球和挡板。 (2) 球的运动 &#xf…

Cursor与Blender-MCP生成3D模型

随着DeepSeek的热度,各行各业接入AI智能,当然作为一个深受3D爱好者喜爱的软件——Blender,也接入了AI智能,通过Blender-MCP,开启一场Blender的智能化模型创建的世界之旅。 目录 1.准备工作2.环境配置2.1 Mac安装2.2 W…

简单以太网配置

display arp //查看路由器mac地址 交换机配置命令: system-view // 从用户视图进入系统视图 dis mac-address //查看mac地址表 路由器配置命令: system-view // 从用户视图进入系统视图 int GigabitEthernet 0/0/0 //进入G口 0/0/0 进入之后配置网关: ip addre…

SpringBoot可以同时处理多少请求?

大家好,我是锋哥。今天分享关于【SpringBoot可以同时处理多少请求?】面试题。希望对大家有帮助; SpringBoot可以同时处理多少请求? 1000道 互联网大厂Java工程师 精选面试题-Java资源分享网 Spring Boot 本身并不直接限制可以处…

一、初始 Linux

文章目录 一、操作系统概述二、Linux 初识1. Linux 的组成2. Linux 发行版 三、远程链接 Linux 系统1. 四、WSL (windows subsystem for linux)1. 什么是 WSL2. 如何下载 WSL3. 安装不同的 Linux 发行版4. 启动停止使用指定发行版5. 卸载与备份6. 文件共享7. 命令混用8. 用 vsc…

LogicFlow介绍

LogicFlow介绍 LogicFlow是一款流程图编辑框架,提供了一系列流程图交互、编辑所必需的功能和灵活的节点自定义、插件等拓展机制。LogicFlow支持前端自定义开发各种逻辑编排场景,如流程图、ER图、BPMN流程等。在工作审批流配置、机器人逻辑编排、无代码平…

Flask实时监控:打造智能多设备在线离线检测平台(升级版)

前言 武林之中,最讲究的便是“掌控”。若是手下弟子忽然失踪,若是江湖好友生死未卜,岂不令人寝食难安?今日,吾等化身技术侠客,祭出Flask实时监控大法,打造一款智能多设备在线离线检测平台&…

嵌入式编程优化技巧:do-while(0)、case范围扩展与内建函数

在嵌入式编程中,优化代码的性能和可靠性至关重要。无论是通过优化控制结构、提升代码的执行效率,还是利用编译器提供的内建函数来加速关键任务,开发者都需要掌握各种技巧和方法。本文将探讨三种在嵌入式编程中常用的优化技术:do-while(0)的使用、case范围扩展以及内建函数的…

MySQL开发陷阱与最佳实践:第1章:MySQL开发基础概述-1.1 MySQL简介与应用场景

👉 点击关注不迷路 👉 点击关注不迷路 👉 点击关注不迷路 文章大纲 MySQL开发陷阱与最佳实践:第1章:MySQL开发基础概述-1.1 MySQL简介与应用场景1.1.1 MySQL的发展历程与市场地位1.1.2 MySQL的核心特性与技术优势1.1.2…