erg/doc/zh_CN/compiler/errors.md
2022-09-06 09:29:14 +09:00

133 lines
2.7 KiB
Markdown

# Erg Compiler Errors
[![badge](https://img.shields.io/endpoint.svg?url=https%3A%2F%2Fgezf7g7pd5.execute-api.ap-northeast-1.amazonaws.com%2Fdefault%2Fsource_up_to_date%3Fowner%3Derg-lang%26repos%3Derg%26ref%3Dmain%26path%3Ddoc/EN/compiler/errors.md%26commit_hash%3D51de3c9d5a9074241f55c043b9951b384836b258)](https://gezf7g7pd5.execute-api.ap-northeast-1.amazonaws.com/default/source_up_to_date?owner=erg-lang&repos=erg&ref=main&path=doc/EN/compiler/errors.md&commit_hash=51de3c9d5a9074241f55c043b9951b384836b258)
## AssignError
尝试重写不可变变量时发生
## AttributeError
尝试访问不存在的属性时发生
## PurityError
当您在不允许副作用的范围内(函数、不可变类型等)编写导致副作用的代码时发生
## MoveError
尝试访问已移动的变量时发生
## BorrowError
在存在对对象的借用时尝试获取可变引用时发生
## CyclicError
当你有一个明显不可阻挡的循环时发生
```python
i: Int = i
f(): Int = g()
g() = f()
h(): Int = module::h()
T = U
U = T
```
## BytecodeError
当加载的字节码损坏时发生
## CompileSystemError
在编译器内部发生错误时发生
## EnvironmentError
如果您在安装期间没有访问权限,则会发生这种情况
## FeatureError
在检测到未正式提供的实验性功能时发生
## ImportError
## IndentationError
检测到不良缩进时发生
派生自SyntaxError
## NameError
当您访问不存在的变量时发生
## NotImplementedError
当您调用具有定义但没有实现的 API 时发生
派生自 TypeError
## PatternError
当检测到非法模式时发生
派生自SyntaxError
## SyntaxError
在检测到错误语法时发生
## TabError
在使用制表符进行缩进/间距时发生
派生自SyntaxError
## TypeError
当对象类型不匹配时发生
## UnboundLocalError
在定义之前使用变量时发生
更准确地说,它发生在以前使用过在范围内定义的变量时
```python
i = 0
f x =
y = i + x
i = 1
y + i
```
在这段代码中,`y = i + x` 中的 `i` 是一个未定义的变量
但是,常量可以在定义之前在另一个函数中调用
```python
f() = g()
g() = f()
```
## Erg Compiler Warnings
## SyntaxWarning
它在语法上很好,但是当我们检测到冗余或不常见的代码(不必要的 `()` 等)时就会发生这种情况
```python
if (True): # SyntaxWarning: unnecessary parentheses
...
```
## DeprecationWarning
在不推荐使用引用的对象时发生
(开发人员在生成此警告时应始终提供替代方法作为提示)
## FutureWarning
当您检测到将来可能导致问题的代码时发生
此警告是由版本兼容性问题(包括库)以及语法和 API 的更改引起的
## ImportWarning