精华内容
下载资源
问答
  • python之错误和异常

    2017-01-04 00:09:31
    错误和异常1 错误 从软件层面上来说,错误分为语法错误和逻辑错误,语法错误指示软件结构上有错误, 导致不能被解释器解释或...对异常好描述是: 它是因为程序出现了错误而在正常控制流以外采取的行为. 这个行

    错误和异常

    1 错误
    从软件层面上来说,错误分为语法错误和逻辑错误,语法错误指示软件的结构上有错误, 导致不能被解释器解释或编译器无法编译. 这些错误必须在程 序执行前纠正。 逻辑错误可能是由于不完整或是不合法的输入 所致; 在其他情况下, 还可能是逻辑无法生成, 计算, 或是输出结果需要的过程无法执行。
    2 异常
    对异常的好描述是: 它是因为程序出现了错误而在正常控制流以外采取的行为. 这个行为又 分为两个阶段: 首先是引起异常发生的错误, 然后是检测(和采取可能的措施)阶段。
    3 Python 中的异常
    python中的异常也是一个类,所有的异常都继承自baseexception。每个异常都由三部分组成:traceback,错误名称,错误原因。
    4 python中检测和处理异常的机制是try-except语句
    如下:

    try:     
        try_suite    # watch for exceptions here 监控这里的异常 
    except Exception[, reason]:     
        except_suite    # exception-handling code  异常处理代码
    

    5 带有多个except的try语句

    try:     
        try_suite    
    except Exception[, reason]:     
        except_suite    
    except Exception1[, reason1]:     
        suite_for_exception_Exception1 
    except Exception2[, reason2]:     
        suite_for_exception_Exception2 

    6 在python中还可以处理多个异常的except语句, except 语句在处理多个异常时要求异常被放 在一个元组里

    except (Exc1[, Exc2[, ... ExcN]])[, reason]:
        suite_for_exceptions_Exc1_to_ExcN 
    

    7 捕获所有异常
    在python中大多数类都继承自exception,所以可以用这个异常捕捉大多数异常:

    try:     
        try_suite
    except Exception as e:    
        except_suite

    8 else子句
    在 try 范围中没有异常被检测到时,执行 else 子 句

    try:     
        3rd_party_module.function() 
    except:     
        log.write("*** caught exception in module\n") 
    else:     
        log.write("*** no exceptions caught\n")

    9 finally子句
    finally 子句是无论异常是否发生,是否捕捉都会执行的一段代码。
    下面是 try-except-else-finally 语法的示例:

    try:     
        A 
    except MyException: B 
    else: C 
    finally: D 

    10 try-except-else-finally:语句

    try:     
        try_suite 
    except Exception1:     
        suite_for_Exception1 
    except (Exception2, Exception3, Exception4):
        suite_for_Exceptions_2_3_and_4 
    except Exception5 as Argument5:     
        suite_for_Exception5_plus_argument 
    else:     
        no_exceptions_detected_suite
    finally:     
        always_execute_suite 

    11 触发异常
    到目前为止,我们所见到的异常都是由解释器引发的.由于执行期间的错误而引发.程序员在编 写 API 时也希望在遇到错误的输入时触发异常,为此,Python 提供了一种机制让程序员明确的触发异 常:这就是 raise 语句。

    raise [SomeException [, args [, traceback]]] 

    第一个参数,SomeExcpetion,是触发异常的名字。
    第二个符号为可选的 args(比如参数,值),来传给异常。
    12 断言
    断言是一句必须等价于布尔真的判定。
    断言语句等价于这样的 Python 表达式,如果断言成功不采取任何措施(类似语句),否则触发 AssertionError(断言错误)的异常.assert 的语法如下:

    assert expression[, arguments] 

    下面是我们如何用 try-except 语句捕获 AssertionError 异常:

    try:     
        assert 1 == 0, 'One does not equal zero silly!' 
    except AssertionError as args:     
        print '%s: %s' % (args.__class__.__name__, args) 

    13 创建异常
    尽管标准异常集包含的内容已经相当广泛,你还是可以创建自己的异常.一种情况是你想在特定 的标准异常和模块异常中添加额外的信息。
    14 为什么用异常
    在应用层处理错误的能力近来变得更为重要, 用户已不再是应用程序的的唯一的直接运行者,程序再也不能只是直接的失败或崩溃,如果这样,就会导致无法挽回的损失。
    15 异常和sys模块
    另一种获取异常信息的途径是通过 sys 模块中 exc_info()函数. 此功能提供了一个 3 元组 (3-tuple)的信息, 多于我们单纯用异常参数所能获得. 让我们看看如何用 sys.exc_info() :

    try: ...     
        float('abc123') ... 
    except: ...     
        import sys ...     
        exc_tuple = sys.exc_info() 

    我们从 sys.exc_info()得到的元组中是:

    • exc_type: 异常类
    • exc_value: 异常类的实例
    • exc_traceback: 追踪(traceback)对象
    展开全文
  • 过去集团公司能获得快速发展,正是因为高层决策一旦决定,便能当机立断地在各条线快速执行和推进,即使存在一些困难,也是边想办法克服边实施,或者是边实施边纠正一些错误,而不是停在那里?..
  • 有些情况下我们能够通过用户一些行为判断出用户预期进行操作,但预期操作可能有多种,此时就不可妄自主张给用户呈现单一结果,但当发现用户执行某一项预期操作概率比其他项概率要大很多,且即便错误进行这...

    2.3 预期操作权衡

    与前面讲的能够明确判断用户意图的情况不同,有些情况下我们能够通过用户的一些行为判断出用户预期进行的操作,但预期的操作可能有多种,此时就不可妄自主张给用户呈现单一结果,但当发现用户执行某一项预期操作的概率比其他项的概率要大很多,且即便错误进行这一预期操作,撤回或纠正的代价也非常低时,也可以直接给用户呈现概率最大的预期操作。
    Trello.com是一个在线协同办公的网站,国内类似的产品有Worktile、 Teambition等。在Trello.com中,用户在一张新的卡片上写标题,并未保存,切换到另外一张卡片上,Trello会认为用户可能输错了地方,默认将用户在前一张卡片中输入的标题移动到新的卡片中。这样如果用户正在卡片一中输入内容,发现输入的内容应该输入到卡片二,不得不切换到卡片二,会发现需要输入的内容Trello已经帮他们移动到了卡片二!
    image
    image

    与必经流程简化不一样,凭用户输入完卡片一后未保存就切换至卡片二这个操作,并不能确切判断用户会在卡片二中输入的内容,但结合用户的操作特征可以认为有很大的可能性是输入错误,需要在卡片二中输入相同内容。下面使用流程图更加清晰地展示两种情况的不同之处。
    image
    image

    再考虑输入内容是否跟刚刚输入的内容一致的概率,整理到以下对比表中。可以非常直观地看出,在绝大多数情况下为用户节省了操作时间,即便是与用户期望不符,用户也只多出删除这一步操作,并未带来太大的麻烦。综合考虑,为用户提供自动填写功能是最优选择。
    image

    准备运用预期操作权衡法完善一项细节创新设计时,可制作以上预期结果对比表格,配合不同情况的出现概率,综合评估权衡出最优方案。下面举几个类似的例子:当用户使用Evernote(印象笔记)创建一条新的笔记时,Evernote会从用户日历的待办事项中获取一条作为默认标题,虽然命中的概率并不高,但完全没有增加任何用户操作成本,万一命中了呢,何乐而不为!
    在Evernote中创建新的笔记,会从用户日历的
    待办事项中获取一条作为默认标题
    再如macOS中的Finder(相当于Windows中的资源管理器),当复制的一个文件夹名称带有年份信息,如“Xmas 2013”,粘贴出来的文件夹名称将自动追加年份为“Xmas 2014”,即便不准确也无妨,没有增加用户操作成本嘛!
    image

    决定最终将哪种方案呈现给用户,数据分析起着至关重要的作用。如果没有各种预期方案被使用的概率值,设计者是无法判断最终应该展示哪一种方案的。当用户的选择远不止两种时,虽然不能将概率最高的方案直接抛给用户,但可以将它优先展示给用户。
    image

    在360安全浏览器中选中文本,会弹出搜索/复制操作框,点击“搜索”按钮,直接为用户新打开一个页面,打开搜索引擎,并搜索此文本;点击 “复制”按钮,则会将文本复制至剪贴板;按鼠标右键则会展开对该文字区域的全部操作。很显然,360安全浏览器是对使用频率最高的文本搜索和复制功能做了提前处理,简化了操作。
    image
    image

    最后总结一下操作流程记录法在细节创新中的应用心法:首先,通过在使用过程中洞察或研究用户行为流,制作出预期结果对比表格,配合不同预期结果的出现概率,综合评估权衡出最优方案。其次,数据是基础,要精心测算不同预期结果的出现概率,才能给出最优的设计。

    展开全文
  • 这些错误必须在程序执行纠正。逻辑错误可能是由于不完整或不合法输入所致。 2.异常 异常就是因为程序出现了错误而在正常控制流以外才去的行为。这个行为有分为两个阶段:首先是引起异常发生的错误,然后是检测...
    Python异常捕获及处理方法
    一.错误和异常的概念
    1.错误
    在程序上来讲错误主要有语法错误和逻辑错误。语法错误知识程序的结构上有错误,导致不能被解析器解析或翻译器翻译。这些错误必须在程序执行前纠正。逻辑错误可能是由于不完整或不合法的输入所致。
    2.异常
    异常就是因为程序出现了错误而在正常控制流以外才去的行为。这个行为有分为两个阶段:首先是引起异常发生的错误,然后是检测(和采取可能的控制措施)阶段。 第一个阶段是在发生了一个异常条件后发生的。只要检测到错误并且意识到异常条件,解析器就会引发一个异常,也叫触发异常或抛出异常。解析器通过它通知当前控制流有错误发生。python也允许程序员自己引发异常,无论是谁引发的,异常就是错误发生的信号。然后当前的流被打断,进入第二阶段。 对异常的处理,异常发生之后,可以调用很多不同的操作。可以是忽略错误或记录错误但不采取措施或采取补救措施后终止程序或者是减轻问题的影响后设法让程序继续执行。至于到底怎么做取决于程序员自己的。
    二.几个异常的例子
                      NameError:尝试访问一个未声明的变量
    ZeroDIvisionError:除数是0
                  SyntaxError:python解析器语法错误
                    IndexError:请求超出了索引操作范围
                         KeyError:请求一个不存在的字典关键词
            FileNotFoundError:找不到文件
                       AttributeError:访问一个不存在的属性

    1.NameError:尝试访问一个未声明的变量

    在这里插入图片描述

    NameError:尝试访问一个未声明的变量

    name

    Traceback (most recent call last):
    File "", line 1, in
    NameError: name 'name' is not defined

    2.ZeroDIvisionError:除数是0

    在这里插入图片描述

    ZeroDIvisionError:除数是0

    1 / 0

    Traceback (most recent call last):
    File "", line 1, in
    ZeroDivisionError: division by zero

    3.SyntaxError:python解析器语法错误

    在这里插入图片描述

    SyntaxError:python解析器语法错误

    a ++

    File "", line 1
    a ++
    ^
    SyntaxError: invalid syntax

    4.KeyError:请求一个不存在的字典关键词

    在这里插入图片描述

    KeyError:请求一个不存在的字典关键词

    d = {‘a’:1}
    d[2]

    Traceback (most recent call last):
    File "", line 1, in
    KeyError: 2

    5.AttributeError:访问一个不存在的属性

    在这里插入图片描述

    AttributeError:访问一个不存在的属性

    open(‘1’.txt)

    Traceback (most recent call last):
    File "", line 1, in
    AttributeError: 'str' object has no attribute 'txt'

    6.1.AttributeError:访问一个不存在的属性

    在这里插入图片描述

    AttributeError:访问一个不存在的属性

    open(‘1’.txt)

    Traceback (most recent call last):
    File "", line 1, in
    AttributeError: 'str' object has no attribute 'txt'

    6.2.AttributeError:访问一个不存在的属性

    在这里插入图片描述

    FileNotFoundError:找不到文件

    open(‘1.txt’)

    Traceback (most recent call last):
    File "", line 1, in
    FileNotFoundError: [Errno 2] No such file or directory: '1.txt'


    展开全文
  • 一、GDB 介绍: GDB是GNU Project调试器,它使您可以查看另一个程序...• 更改程序中的内容,以便您可以尝试纠正一个错误的影响,然后继续学习另一个错误。 GDB 调试器已经对 C、C++、Go、Objective-C、OpenCL、Ada 等

    一、GDB

    介绍

    GDB是GNU Project调试器,它使您可以查看另一个程序在“执行”期间正在执行的操作–或该程序崩溃时正在执行的操作。
    GDB可以做四种主要的事情(以及支持这些事情的其他事情)来帮助您捕获行为中的错误:
    • 启动您的程序,并指定可能影响其行为的所有内容。
    • 使程序在指定条件下停止。
    • 检查程序停止时发生的情况。
    • 更改程序中的内容,以便您可以尝试纠正一个错误的影响,然后继续学习另一个错误。
    GDB 调试器已经对 C、C++、Go、Objective-C、OpenCL、Ada 等多种编程语言提供了支持。

    安装

    sudo yum -y install gdb
    gdb -v
    

    文档

    http://www.sourceware.org/gdb/

    二、监控JVM

    实现:JDK内置了一些监控JVM的API接口,就是java.lang.management包,其中提供了很多MXBean的接口类用来监控JVM的数据。并且JDK也内置了很多工具用于监控Java应用,其中jconsole就是使用JMX实现的。

    在这里插入图片描述

    参考

    https://github.com/chenshuaikang/jvm-monitor

    三、MACOS使用LLDB

    简介

    macOS 默认使用 LLDB 来进行 C/C++ 程序的调试, LLDB 能够逐行调试程序,使开发者能够了解程序的变量值以及堆栈是如何变化的,一旦学会之后使用起来也比 printf 更加方便和简单,赶紧学起来吧。

    常用命令

    break (b) - 设置断点,也就是程序暂停的地方
    run (r) - 启动目标程序,如果遇到断点则暂停
    step (s) - 进入下一条指令中的函数内部
    backtrace (bt) - 显示当前的有效函数
    frame (f) - 默认显示当前栈的内容,可以通过 `frame arg` 进入特定的 frame(用作输出本地变量)
    next (n) - 运行当前箭头指向行
    continue (c) - 继续运行程序直到遇到断点。
    

    四、嵌套for循环、一行一行比一列一列的循环好,因为内存层级结构中的缓存有关

    在这里插入图片描述

    用心开发、注意细节。

    展开全文
  • gdb 调试程序工具

    2018-10-29 11:34:01
    gdb 调试工具:  程序一般出现的错误  编译错误,运行错误,逻辑错误. gdb 四方面工作: ...动态改变程序的执行环境,这样就可以先纠正一个错误,然后再纠正其他错误. gdb:常用命令  1.为了发挥 gdb 全部功能,...
  • 软件构造之测试总结

    2019-06-21 09:51:32
    1.测试与调试:测试是检测错误的一种手段,调试是诊断和纠正已经检测到的错误的根本原因的手段 2.静态测试:不执行程序,在源代码上进行测试 3.白盒测试:对程序内部代码结构的测试 4.黑盒测试:对程序外部变现出来...
  • 3.2.2 控制表锁升级行为 109 3.3 事务、锁定和并发 110 3.4 阻塞 115 3.4.1 找到并解决阻塞进程 116 3.4.2 配置语句等待锁释放时长 118 3.5 死锁 118 3.5.1 使用跟踪标志位找出死锁 119 3.5.2 ...
  • gdb之简介

    2020-07-01 16:12:57
    摘要 像gdb这样调试器目的是让您看到一个程序在执行时“内部”发生了什么,或者一个程序在崩溃时正在做什么。...改变程序中内容,以便您可以尝试纠正一个错误,然后继续了解另一个错误。 ...
  • 使用 Visual Studio 进行调试

    千次阅读 2017-03-31 23:36:18
    这些功能使您可以在某些过程位置停止执行,检查内存和寄存器值,更改变量,观察消息通信量,以及仔细查看代码的行为。 调试器安全 调试其他进程能力赋予您极广泛权力,这是无法通过其他途经获得,在进行远程...
  • 需要位操作计算机编程任务包括低级设备控制,错误检测和纠正算法,数据压缩,加密算法和优化。对于大多数其他任务,现代编程语言允许程序员直接使用抽象而不是代表那些抽象位。执行位操作源代码使用按位运算:...
  • matlab归零码功率谱原始码语音噪声(SIN)软件包 概述 SIN是一个软件包,已用于在多个测试站点和大学运行许多行为测试,包括...使用已建立程序,这是500个潜在错误,这些错误是无法追踪和纠正的。 因此,SIN目标是
  • TC4测试:可以测试代码并分析结果,以纠正使用V模型手动测试和/或单元测试发现的错误 TC10可以根据相关范例(例如,面向对象,事件驱动或过程)应用良好实践方法 所需资源 滑梯 笔记型电脑 互联网 便利贴 标记物 ...
  • 英语不是我母语,所以请随时纠正任何错误。 邪恶交换 邪恶简单文本交换运算符。 这是汤姆·麦克唐纳(Tom McDonald)进行端口。 默认绑定 gx (evil-exchange) 首次使用时,定义(并突出显示)要交换...
  • Linux服务器环境搭建

    2020-07-30 23:52:45
    1 行为守则 1.1 拍摄快照 Linux系统操作非常复杂,搭建开发环境时全部使用命令完成安装过程。而在Linux系统下没有像360安全卫士那样工具...一旦修改错误想要纠正会很困难。所以要养成一个好习惯:修改配置文件之前先
  • 当这些目标一旦确立,其隐含的假设是环境在实施计划期间是不变的,如果这种假设是错误的,遵循计划的管理者可能会遇到麻烦,因为被要求继续实现原定目标的管理者可能不能对变化的环境做出响应。当环境已经发生变化时...
  • 如果你的问题基于错误的假设,某个普通黑客(J. Random Hacker)多半会一边在心里想着蠢问题…, 一边用无意义的字面解释来答复你,希望着你会从问题的回答(而非你想得到的答案)中汲取教训。 绝不要自以为够格得到...
  • 软件工程教程

    热门讨论 2012-07-06 23:10:29
    删除操作一旦执行,立即被监听器捕获到,进而在执行 删除操作前执行自定义函数体,即判断实体有无undeletable标签,有则中断删除操作,无则正常删除。 用例图 关系 关联关系 ;依赖关系 ;泛化关系;关系...
  • winrar3.7 Beta8

    2007-07-07 00:17:02
    <br> b) WinRAR 对文件大小超过 4 GB 的 UDF ISO 文档中文件显示错误的大小。这些文件 可以被正确解压,但是在列表窗口中显示的大小不正确。 <br> 版本 3.70 beta 5 <br> 1. 错误修正: <br> a)...
  • WINRAR5.0正式注册版

    2013-10-10 10:14:03
    如果 命令行 RAR 检测到用户输入了错误的密码,它会返回退出码 11。只有 RAR 5.0 压缩文件才能返回此代码。对于 RAR 4.x 文件它可以区分是密码错误还是数据损坏。 15. 'v' 和 'l' 命令在行的末尾显示压缩的...
  • 14.4 纠正关于可访问性的错误观点 270 14.5 关于可访问性小技巧,一个一个元素地介绍 274 14.5.1 图片 274 14.5.2 专业工具 282 14.5.3 保持有效Tab键:我们好朋友,tabindex属性 283 14.5.4 为可访问性...
  • 35、测试目标包括以下哪些内容:找出所有团队必须解决缺陷/按照功能规格说明书验证解决方案中组件/找出设计中的错误/找出由意外用户行为而产生的错误/测试解决方案中所有组成部分 36、对于MSF 过程模型...
  • AkelPad-4.8.5-setup

    2014-01-12 10:04:46
    纠正错误代码页显示; ◆文本列选; ◆多级撤消; ◆支持“正则表达式”查找/替换,可快速搜索/替换文本字串; ◆能记住文件代码页和插入点位置; ◆文档打印预览和打印; ◆支持语言模块; ◆插件支持 ...
  • realplayer

    2010-08-18 10:57:02
    您同意由 DRM 启用和(或)执行的通信,包括未经进一步通知 DRM 自动更新,而无论第 6 章节对 AutoUpdate 如何定义。 您同意保护和保障 RN 免于任何与使用第三方 DRM 有关索赔。 b) 内容供应商使用本“软件”所...
  • pendulum:一个比 arrow 更具有明确,可预测的行为的时间操作库。 PyTime:一个简单易用 Python 模块,用于通过字符串来操作日期/时间。 pytz:现代以及历史版本世界时区定义。将时区数据库引入 Python。 ...
  • siebel工作流管理指南

    2009-03-23 11:46:40
    使用验证工具来纠正工作流程过程中的错误 123 运行过程模拟器 124 测试涉及服务器组件工作流程 125 第 9 章:适用于管理员:管理工作流程过程 关于部署工作流程过程 127 部署工作流程过程 128 将工作流程过程部署...
  • php高级开发教程说明

    2008-11-27 11:39:22
    更大项目如果缺乏计划将导致更多的错误,在开发后期,可能会遇到没有或无法预见 困难,这是由于缺乏计划时间和工作,这些困难可能会严重到让你彻底地重组整个项目。例 如,对一个依赖额外数据库提取层数据库...
  • 易语言5.1 相对于易语言5.0更新说明: ... 修改XML解析支持库,增加写出CDATA数据功能,解决解析XML时错误的丢弃换行和TAB字符的BUG,解决读取节点值时对CDATA数据进行转义处理的BUG。 20. 修改扩展界面支持库...

空空如也

空空如也

1 2
收藏数 31
精华内容 12
关键字:

执行行为错误的纠正