异常分类

异常(exception)是通常用于异常处理的物体,所有内置的错误类型都是Exception的子类型

名称描述
ArgumentError给定的参数不符合人为规定
AssertionError断言失败
Base.IOError流操作出错
BoundsError进行索引操作时越界
CompositeException描述(可能由线程带来)的多个错误
DimensionMismatch多维数组操作时维度不统一
DivideError除以0
DomainError给定的参数超过某个范围,如sqrt(-1)
EOFError流中无法读入更多数据
ErrorException泛化的错误
InexactError类型转化时无法解决的不精确问题
InitError模块使用__init__初始化时抛出的错误
InterruptException进程被终端阻塞
KeyError对字典或集合访问/删除不存在的键
LoadErrorincluderequireusing时抛出的错误
Meta.ParseError表达式解析失败
MethodError调用的函数不具有指定方法(由参数类型决定)
MissingException在不支持missing的情况下遇到了missing
OutOfMemoryError系统或垃圾收集器无法承载内存消耗
OverflowError表达式结果对于指定类型太大
ReadOnlyMemoryError尝试在只读区域写入数据
SegmentationFault段错误,可能是指针偏移
StackOverflowError栈溢出,函数多级调用开销过大(通常是错误地进行了无限递归)
StringIndexError参阅
SystemError调用系统API时出错
TaskFailedException线程运行失败
TypeError类型断言失败
UndefKeywordError给函数传额外参数时漏传
UndefRefError访问未定义的某物品或字段
UndefVarError当前作用域中某量未定义

练习

对于以下填空题,判断抛出的异常类型,不会抛出异常则填入nothing

NaN/0

1÷0

[1, 2, 3, 4][8]

"cat"/0

foo()=foo(); foo()

[1 2; 3 4] - [1, 1, 1, 1]

"猫猫"[2]

Dict(0 => 1)[1]

@assert 1==0

typeassert(0.0, Int)