zoukankan      html  css  js  c++  java
  • 13.困难重重

        慢慢的 开始有些感悟了 总感觉自己写程序有些吃力 本以为自己写好了一段代码 并且经过自己的认真检查之后,运行之后却发现事与愿违,一大堆Bug出现。此时的你内心无比崩溃,但是面对这么多行的代码,该怎么去找到错误的地方,并且修改他呢?

        确实在很多情况下,写代码不是一件难的事情,而真正难的是要你去读懂代码的逻辑以及能够快速处理Bug的能力,在设计代码的时候脑海里能有一个很好的结构,使得程序有很好的规范性,不会一团乱糟。修改起来就像无头苍蝇一样。

    其实在PyCharm中有专门用来调错的功能 ---- Debug

    这个功能很重要 在日常工作中基本不可缺失

    在你写好代码之后 右击运行debug 程序会在你错误的地方停留下来。

    当你得知你错误的地方之后 你可以进一步的确定问题所在 并打下断点。

    具体操作和用法需要时间的累计和经验。

    在程序内部捕捉异常

    这个问题很常见,为什么说要捕捉异常呢,在处理一个实际的业务问题中,难免会出现各种各样的问题,有些问题是在我们意料之外,有些问题是在我们计划之中

    但如果说我们没有捕捉异常这一功能,对程序的设计和复杂度就更高了。

    列举常见的8类错误 但是远不止这8类错误:

    1.SyntaxError:语法错误

    2.NameError:试图访问的变量名不存在

    3.IndexError:索引错误,使用的所以你不存在,常为索引超出序列范围

    4.KeyError:使用了映射中不存在的关键字(键)时引发的关键字错误

    5.TypeError:类型错误,内建操作或是函数应于在错误类型的对象时会引发类型错误

    6.ValueError:值错误,传给对象的参数类型不正确,例如给int()函数传入了字符串数据类型

    7.AttributeError:属性错误,特性引用和赋值失败时会引发属性错误

    8.IOError:输入输出错误

    写法:

    1.单个异常捕捉

    try:
        n = a
    except NameError:
        print('访问的变量名不存在')

     2.多个异常捕捉 并且打印具体的异常信息

    try:
        ...
    except Error1  as e:
        print(e)
    except Error2 as e:
        print(e)

    3.完整结构

    try:
        ...
    except exception1:
        ...
    except exception2:
        ...
    except:
        ...
    else:
        ...
    finally:
        ...

    执行的过程为:

     4.自定义抛出异常

    raise 抛出对象

    这里这种方法本身不太具备实际意义 可以理解为Python已经写好了这个对象,如果你想去自定义一个对象让后将他抛出,也是ok的,but我们没必要这么去做。

  • 相关阅读:
    LeetCode 1122. Relative Sort Array (数组的相对排序)
    LeetCode 46. Permutations (全排列)
    LeetCode 47. Permutations II (全排列 II)
    LeetCode 77. Combinations (组合)
    LeetCode 1005. Maximize Sum Of Array After K Negations (K 次取反后最大化的数组和)
    LeetCode 922. Sort Array By Parity II (按奇偶排序数组 II)
    LeetCode 1219. Path with Maximum Gold (黄金矿工)
    LeetCode 1029. Two City Scheduling (两地调度)
    LeetCode 392. Is Subsequence (判断子序列)
    写程序判断系统是大端序还是小端序
  • 原文地址:https://www.cnblogs.com/zhouA/p/15712280.html
Copyright © 2011-2022 走看看