Flutter学习笔记—异常代码处理

249 阅读1分钟

try...on...

关系具体异常,针对不同异常进行不同处理

main(List<String> args){
    try{
        //使除数为0
        print(11~/0);
    } on IntegerDivisionByZeeroException{
        print("除数为0");
    } on Exception{
        print("Exception");
    } finally{
        print("finally");
    }
}

想针对不同异常进行不同处理,还想打印调用栈信息

main(List<String> args){
    try{
        print(11~/0);
    } on IntegerDivisonByZeroException catch(e,s){
        print(s);
    } on Exception catch(e,s){
        print(s);
    }
}

try...catch...

不关心具体异常,只想捕获,避免异常继续传播

main (List<String> args){
    try{
        print(11~/0);
    } catch(e){
        //打印报错信息
        print(e);
    } finally{
        print("finally");
    }
}

获取更多异常信息,可以使用两个参数catch,第二个参数是异常的调用栈信息。

main(List<String> args){
    try{
        print("11~/0");
    } catch(e,s){
        print(s);
    }
}