Flutter 在dart中运行自定义异常时,如何通过编译器解决错误?
我编写了以下代码,以使用visual studio代码测试dart中的自定义异常。Flutter 在dart中运行自定义异常时,如何通过编译器解决错误?,flutter,dart,exception,try-catch,Flutter,Dart,Exception,Try Catch,我编写了以下代码,以使用visual studio代码测试dart中的自定义异常。 (参考YouTube上的教程)我没有得到教程中所示的预期输出 void main(){ try { depositMoney(-200); } catch (e) { print(e.errorMessage()); } finally { print("FINALLY") } } class DepositE
(参考YouTube上的教程)
我没有得到教程中所示的预期输出
void main(){
try {
depositMoney(-200);
} catch (e) {
print(e.errorMessage());
} finally {
print("FINALLY")
}
}
class DepositException implements Exception {
String errorMessage() {
return "You cannot enter amount less than 0";
}
}
void depositMoney(int amount) {
if(amount < 0) {
throw new DepositException();
}
}
请帮我解决这个问题。……
期望输出:
You cannot enter amount less than 0
FINALLY
我也试过。我在初始化catch块时提到了自定义异常类,从而解决了这个问题 请在下面查找代码片段:
void main(){
try {
depositMoney(-200);
} on DepositException catch (e) {
print(e.errorMessage());
} finally {
print("FINALLY");
}
}
class DepositException implements Exception {
String errorMessage() {
return "You cannot enter amount less than 0";
}
}
void depositMoney(int amount) {
if(amount < 0) {
throw new DepositException();
}
}
void main(){
试一试{
存款(-200);
}关于异常捕获(e){
打印(如errorMessage());
}最后{
打印(“最终”);
}
}
类DepositorException实现异常{
字符串errorMessage(){
返回“不能输入小于0的金额”;
}
}
无效存款(整笔金额){
如果(金额<0){
抛出新的异常();
}
}
您应该使用“on”来限制catch,而不是检查正文中的类型:“on desposition exception catch(e)”。。。这样别人就不会误会了。谢谢你的建议。我不知道怎么走。我已经修改了密码。您还可以实现一个抽象类,该类扩展具有errorMessage的异常,然后为您想要的每个特定异常实现具体类,并“on MyBaseException catch(e)”提供一个遵循相同协议的异常类。
void main(){
try {
depositMoney(-200);
} on DepositException catch (e) {
print(e.errorMessage());
} finally {
print("FINALLY");
}
}
class DepositException implements Exception {
String errorMessage() {
return "You cannot enter amount less than 0";
}
}
void depositMoney(int amount) {
if(amount < 0) {
throw new DepositException();
}
}