• 违例控制:解决错误


    从最古老的程序设计语言开始,错误控制一直都是设计者们需要解决的一个大问题。由于很难设计出一套完 美的错误控制方案,许多语言干脆将问题简单地忽略掉,将其转嫁给库设计人员。对大多数错误控制方案来 说,最主要的一个问题是它们严重依赖程序员的警觉性,而不是依赖语言本身的强制标准。如果程序员不够 警惕——若比较匆忙,这几乎是肯定会发生的——程序所依赖的错误控制方案便会失效。 “违例控制”将错误控制方案内置到程序设计语言中,有时甚至内建到操作系统内。这里的“违例” (Exception)属于一个特殊的对象,它会从产生错误的地方“扔”或“掷”出来。随后,这个违例会被设计 用于控制特定类型错误的“违例控制器”捕获。在情况变得不对劲的时候,可能有几个违例控制器并行捕获 对应的违例对象。由于采用的是独立的执行路径,所以不会干扰我们的常规执行代码。这样便使代码的编写 变得更加简单,因为不必经常性强制检查代码。除此以外,“掷”出的一个违例不同于从函数返回的错误 值,也不同于由函数设置的一个标志。那些错误值或标志的作用是指示一个错误状态,是可以忽略的。但违 例不能被忽略,所以肯定能在某个地方得到处置。最后,利用违例能够可靠地从一个糟糕的环境中恢复。此 时一般不需要退出,我们可以采取某些处理,恢复程序的正常执行。显然,这样编制出来的程序显得更加可 靠。 Java 的违例控制机制与大多数程序设计语言都有所不同。因为在Java 中,违例控制模块是从一开始就封装 好的,所以必须使用它!如果没有自己写一些代码来正确地控制违例,就会得到一条编译期出错提示。这样 可保证程序的连贯性,使错误控制变得更加容易。 注意违例控制并不属于一种面向对象的特性,尽管在面向对象的程序设计语言中,违例通常是用一个对象表 示的。早在面向对象语言问世以前,违例控制就已经存在了。

     1 package Com.TomTest;
     2 
     3 
     4 public class TomTest_21 {
     5     public void getPrimnumber(int n) {
     6         int i, j;
     7         boolean isPrim=true;
     8         for (i = 2; i <= n; i++) {
     9             isPrim=true;
    10             for (j = 2; j <= (int)Math.sqrt(i); j++) {
    11                 if (i % j == 0){
    12                     isPrim=false;
    13                     break;
    14                 }
    15             }
    16             if (isPrim)
    17                 System.out.print(" " + i);
    18         }
    19     }
    20     public static void main(String args[]) {
    21         TomTest_21 p = new TomTest_21();
    22         p.getPrimnumber(20);
    23     }
    24 }
  • 相关阅读:
    Blazor实现高级表单功能
    VS2022设计WinForm多目标框架下界面缩放不一致问题
    Blazor自定义Input使用bindValue问题
    .NET6使用HttpContext.Current
    Blazor使用级联值实现Dialog关闭功能
    tomcat服务的原理和使用
    Linux安装nginx并配置ssl自签证书
    Xrdp Debian
    JD&qinglong
    PHP获取启始时间戳
  • 原文地址:https://www.cnblogs.com/borter/p/9438676.html
Copyright © 2020-2023  润新知