用 throw 抛出的可以是不同类型的异常,你可以实施 Dart 提供的 Exception 创建自己需要的异常。比如我们可以专门创建一个没油了这种异常。
在后面我们会学习 Dart 里的类,先这样,在上面定义一个类,用 class 这个关键词,名字是 NoGasException,让这个类 implements,实施一下 Dart 提供的 Exception 这个抽象类。
这里我们就算是自己定制了一种类型的异常,名字就是 NoGasException,这个 drive 函数里面,throw 的异常可以新建一个 NoGasException() 异常。
运行一下应用,观察控制台上输出的东西,这里仍然会提示 Unhandled exception,没有被处理的异常,不过这回这里会显示这个没有被处理的异常的类型,提示 Instance of 'NoGasException',意思就是这个异常是 NoGasException 这个类的一个实例。
在这个异常类里面可以给它添加一个属性,类型是 String,名字叫 message,然后再添加一个构造函数,NoGasException,添加一个 message 参数。这样创建这个类的时候可以给它提供一个 message 参数,这个参数的值会作为这个类里面的 message 属性的值。
throw 这个 NoGasException 的时候,提供一个 String 类型的值,比如 没油了! 在后面我们会再了解一下怎么样使用这个类里的 message 这个属性。