美文网首页
异常抛出

异常抛出

作者: Harely | 来源:发表于2020-05-21 15:07 被阅读0次

异常抛出之 Throw

  • 抛出一个已知异常
//执行
print('<<<<<<<<<<<<<抛出异常前');
//执行
throw new FormatException('抛出异常!!!');
//或者:  throw '抛出异常!!!';
//不执行
print('抛出异常前>>>>>>>>>>>>');

打印效果:


效果打印

从打印结果来看,一旦发生异常后面的逻辑就不会执行了。


Catch

  • 普通捕获
print('<<<<<<<<<<<<<抛出异常前');
var initArray = [10, 20, 30, 40, 50];
try {
  
  print('========= ${initArray[5]}');
  
} catch (e) {
  print('try 异常错误 !' + e.toString());
}
print('>>>>>>>>>>>> try 异常捕获结束 !');
           
效果: catch 捕获

  用try 包含异常的代码,然后进行捕获。捕获后进行输出错误的代码提示,但是后面的代码依然执行。

  • 使用 on 的关键词
print('<<<<<<<<<<<<<抛出异常前');
var initArray = [10, 20, 30, 40, 50];

try {
print('========= ${initArray[5]}');

} on RangeError {
print('====== on ${initArray[4]}');
} on FormatException {
print('FormatException');
} catch (e) {
print('try 异常错误提示 !' + e.toString());
}
print('>>>>>>>>>>>> try 异常捕获结束 !');

效果:


异常捕获

  我们看到详细的错误信息没有打印,因为代码逻辑走到 on RangeError 分支,而输出的详细错误信息是作为默认异常处理才被执行的。

  • 再次抛出异常 rethrow
print('<<<<<<<<<<<<<抛出异常前');
var initArray = [10, 20, 30, 40, 50];

try {
  print('========= ${initArray[5]}');
  
} on RangeError {
  print('====== on ${initArray[4]}');
  rethrow;
} on FormatException {
  print('FormatException');
} catch (e) {
  print('try 异常错误提示 !' + e.toString());
}
print('>>>>>>>>>>>> try 异常捕获结束 !');

效果:


再次抛出异常并提示打印问题

  我们看到当我们使用了 rethrow 后,我们的代码并没有对后面的逻辑进行执行,尤其是 catch 中的捕获,仅仅是给出了错误的原因。


Finally

            print('<<<<<<<<<<<<<抛出异常前');
            
            var initArray = [10, 20, 30, 40, 50];

            try {
              print('========= ${initArray[5]}');
              
            } on RangeError {
              print('====== on ${initArray[4]}');
              rethrow;
            } on FormatException {
              print('FormatException');
            } catch (e) {
              print('try 异常错误提示 !' + e.toString());
            } finally {
              print('程序运行结束');
            }
            print('>>>>>>>>>>>> try 异常捕获结束 !');
效果

相关文章

  • 异常抛出

    本章主要内容 用try语句捕获异常 常见异常处理 用raise 和assert抛出异常 自定义异常 常用异常名 总...

  • 抛出异常

    在方法执行的时候,遇到不匹配的地方,加入异常抛出机制,可以清晰的知道异常点,并很好的解决。 throw new E...

  • 抛出异常

  • 抛出异常

    MSSQL 在存储过程中进程会处理一些逻辑性的错误,如:将RMB转换为USD时,没有查询到想要的汇率 这个时候最好...

  • 异常抛出

    异常抛出之 Throw 抛出一个已知异常 打印效果: 从打印结果来看,一旦发生异常后面的逻辑就不会执行了。 Cat...

  • jvm如何处理异常

    异常分类 抛出异常 显示 throw手动抛出y异常 隐示 java虚拟机碰到无法继续执行的异常状态,自动抛出异常 ...

  • 子类继承父类方法

    父类方法抛出异常,子类继承父类,重写父类方法时,抛出的异常“子类抛出的异常类型不能比父类抛出的异常类型更宽泛”。 ...

  • [转]构造函数、析构函数抛出异常的问题

    构造函数、析构函数抛出异常的问题 抛出异常1.1 抛出异常(也称为抛弃异常)即检测是否产生异常,在C++中,其采用...

  • Python异常处理(个人笔记)

    Python3 异常处理 捕获全部异常 各种异常清单 抛出异常 若想知道是否抛出了异常

  • Signature verify()报错解决;Signature

    Signature的verify方法抛出异常jdk1.8环境下抛出异常(jdk1.6不会抛出异常)Exceptio...

网友评论

      本文标题:异常抛出

      本文链接:https://www.haomeiwen.com/subject/eenzohtx.html