Go 语言错误处理

不管使用哪种语言,程序代码都可能包含各种错误,例如语法错误、逻辑错误、除 0 错误和文件缺失等。因此,每种编程语言都有处理错误的内置机制。

1. Go 程序中的错误

需要指出的是,错误有多种类型。语法错误通常是开发人员在编写代码时犯的拼写错误。这些可能只是拼写错误的单词或缺少字符的语句。语法错误通常会使用程序无法编译和运行,因此程序员必须在程序运行之前修复它们。像大多数语言一样,Go 编译器会在程序编译或运行时指出语法错误。常见的语法错误包括如下:

  • 使用错误的大小写,例如使用 println 而不是 Println。
  • 在使用变量之前没有声明变量。
  • 试图将一种类型的值赋给另一种类型的变量。

此外还有逻辑错误。如果有逻辑错误,代码通常会编译并运行,但输出可能与预期不同。和语法错误一样,逻辑错误通常由开发人员引起的。逻辑错误通常表现为以下情形。

  • 当你想检查是否为真时,检查的却是 "是否为假";
  • 赋值或变量错误;
  • 使用不正确的业务规则

其他一些逻辑错误和类似的错误也会导致程序停止工作。这些错误可能包括如下:

  • 被 0 除;
  • 试图向一个不存在的文件写入内容;
  • 试图将一个太大的值放入数值变量中;
  • 使用接收到的错误数据。

这些是需要在 Go 程序中捕获和处理的错误。例如,假设用户被提示以整数形式输入他们的年龄,但实际输入了他们的名字,如果没有包含处理错误的逻辑,则 Go 程序可能会崩溃。

2. Go 中的 error 类型

在 Go 中,有一种专用的错误类型称为 error 类型。由于 error 是一种类型,因此我们可以将错误存储在变量中,从函数返回错误,并对任何其他与类型相关的错误执行操作。

下面的代码包含了一个语法错误,这个错误被成功捕获。

Go 复制代码
package main

import (
	"fmt"
	"strconv"
)

func main() {
	var str string = "10x"

	nbr, error := strconv.ParseInt(str, 10, 8)
	fmt.Println(nbr)
	fmt.Println(error)
}

当运行上述代码时,会得到以下消息:

Go 复制代码
0
strconv.ParseInt: parsing "10x": invalid syntax
  1. 自定义错误处理

  2. 错误方法

  3. Errorf 函数

  4. 空标识符

  5. 用结构体表示错误消息

  6. 多个自定义错误消息

相关推荐
笨笨饿12 分钟前
29_Z变换在工程中的实际意义
c语言·开发语言·人工智能·单片机·mcu·算法·机器人
艾为电子39 分钟前
【技术帖】让接口不再短命:艾为 C-Shielding™ Type-C智能水汽防护技术解析
c语言·开发语言
棉花骑士1 小时前
【AI Agent】面向 Java 工程师的Claude Code Harness 学习指南
java·开发语言
IGAn CTOU1 小时前
PHP使用Redis实战实录2:Redis扩展方法和PHP连接Redis的多种方案
开发语言·redis·php
环黄金线HHJX.1 小时前
TSE框架配置与部署详解
开发语言·python
Vfw3VsDKo2 小时前
Maui 实践:Go 接口以类型之名,给 runtime 传递方法参数
开发语言·后端·golang
Pyeako2 小时前
PyQt5 + PaddleOCR实战:打造桌面级实时文字识别工具
开发语言·人工智能·python·qt·paddleocr·pyqt5
白藏y3 小时前
【C++】muduo接口补充
开发语言·c++·muduo
是真的小外套3 小时前
第十五章:XXE漏洞攻防与其他漏洞全解析
后端·计算机网络·php
zk_one3 小时前
【无标题】
开发语言·前端·javascript