java中如果需要抛出异常的话,我们都知道,直接在方法上抛出即可,在调用该方法的地方我们可以进行异常的处理。类似这样:
于是,我也在dart中打算这样做。。。
果然没这么简单,图中的意思是只能在方法中抛出异常。
于是我做了像图中的处理,在try中手动抛出一个异常,再用rethrow将它抛出,然后再看:
嗯,看上去好像没啥毛病,抛出来在调用的地方进行捕获嘛,运行下看看。。
oh!WTF!,第一行我们可以看到catch custom error是执行了的,也就是说方法中的将异常抛出是执行了,但是没有执行处理后的toast:发生未知错误,动了个心眼,估计是Future的问题,将它改成await进行获取
大功告成,具体什么原因导致这种坑,麻烦博友们知道的普及下。