逻辑错误

异常处理

£可爱£侵袭症+ 提交于 2019-12-23 10:50:47
一,异常和错误 part1:程序中难免出现错误,而错误分成两种 1.语法错误(这种错误,根本过不了python解释器的语法检测,必须在程序执行前就改正) #语法错误示范一 if #语法错误示范二 def test: pass #语法错误示范三 print(haha 语法错误 语法错误 2.逻辑错误(逻辑错误) #用户输入不完整(比如输入为空)或者输入非法(输入不是数字) num=input(">>: ") int(num) #无法完成计算 res1=1/0 res2=1+'str' 逻辑错误 part2:什么是异常 异常就是程序运行时发生错误的信号,在python中,错误触发的异常如下 part3:python中的异常种类 在python中不同的异常可以用不同的类型(python中统一了类与类型,类型即类)去标识,不同的类对象标识不同的异常,一个异常标识一种错误 # 触发IndexError l=['egon','aa'] l[3] # 触发KeyError dic={'name':'egon'} dic['age'] #触发ValueError s='hello' int(s) 错误举例 AttributeError 试图访问一个对象没有的树形,比如foo.x,但是foo没有属性x IOError 输入/输出异常;基本上是无法打开文件 ImportError 无法引入模块或包

【异常设计】自定义异常体系,异常处理中心

时光总嘲笑我的痴心妄想 提交于 2019-12-23 01:47:00
在Java程序开发中,会遇到各种异常,常见的NullPonitException(NPE),IllegalArgumentException等等,Java的优雅之处,很大一部分就在于这些刚开始看着头痛的异常中 Exceptions 首先,什么是异常,通俗来讲,异常,是我们程序出现错误,并无法按照预期执行下去的情况,会抛出一个异常,它会告诉你,某个地方出错了,请示你该如何解决或者修改你的代码。 那么我们可以简单理解为,这是一个消息,一旦程序遇到问题,原定逻辑无法执行,程序非常忠实于开发者,它不会自己决定该怎么做,此时,程序开始收集信息,例如程序在A类执行到118行代码的地方,遇到了一个无法解决的问题,原定逻辑设置了循环了10[0-9]次,但给定的数组里只有8条数据,该怎么解决? 当执行到index=8时,给定数组中不存在第8个索引,这里我们遇到的异常是ArrayIndexOutOfBoundsException,给你传递了一个消息: Index: 8, Size: 8 ,告诉你说,你给了我一个只有8个数据的List,却要我找位置在第8索引,数组越界了,同时,他给你带上了异常栈,最上面是这个异常最开始发生的代码所在位置,然后一级一级往外传,每跳出一层,就记录一级的信息,在没有异常处理的情况下,直接跳到main方法中,展示到控制台中,并终止自己。 了解了异常是什么,下面来了解下Java

python3 异常处理

浪子不回头ぞ 提交于 2019-12-19 11:36:18
1.异常和错误 1.1 语法错误 #语法错误示范一 if #语法错误示范二 def test: pass #语法错误示范三 print(haha 1.2 逻辑错误 #用户输入不完整(比如输入为空)或者输入非法(输入不是数字) num=input(">>: ") int(num) #无法完成计算 res1=1/0 res2=1+'str' 2.python中异常种类 AttributeError 试图访问一个对象没有的属性,比如foo.x,但是foo没有属性x IOError 输入/输出异常;基本上是无法打开文件 ImportError 无法引入模块或包;基本上是路径问题或名称错误 IndentationError 语法错误(的子类) ;代码没有正确对齐 IndexError 下标索引超出序列边界,比如当x只有三个元素,却试图访问x[5] KeyError 试图访问字典里不存在的键 KeyboardInterrupt Ctrl+C被按下 NameError 尝试访问一个没有申明的变量 SyntaxError Python代码非法,代码不能编译(个人认为这是语法错误,写错了) TypeError 传入对象类型与要求的不符合 UnboundLocalError 试图访问一个还未被设置的局部变量,基本上是由于另有一个同名的全局变量,导致你以为正在访问它 ValueError

一杯茶的时间,上手 Express 框架开发

梦想与她 提交于 2019-12-19 02:56:07
Node.js 已经成为 Web 后台开发圈一股不容忽视的力量,凭借其良好的异步性能、丰富的 npm 库以及 JavaScript 语言方面的优势,已经成为了很多大公司开发其后台架构的重要技术之一,而 Express 框架则是其中知名度最高、也是最受欢迎的后端开发框架。在这篇教程中,你将了解 Express 在 Node 内置 http 模块的基础上做了怎样的封装,并掌握路由和中间件这两个关键概念,学习和使用模板引擎、静态文件服务、错误处理和 JSON API,最终开发出一个简单的个人简历网站。 此教程属于 Node.js 后端工程师学习路线 的一部分,欢迎来 Star 一波,鼓励我们继续创作出更好的教程,持续更新中~。 旧时代:用内置 http 模块实现一个服务器 自从 Ryan Dahl 在 2009 年的 JSConf 正式推出 Node.js 平台后,这门技术的使用率就如同坐了火箭一般迅速上升,成为了最受喜爱的后端开发平台之一,而 Express 则是其中最为耀眼的 Web 框架。在正式开始这篇教程之前,我们将列举一下这篇教程所需要的预备知识、所用技术和学习目标。 预备知识 本教程假定你已经知道了: JavaScript 语言基础知识(包括一些常用的 ES6+ 语法) Node.js 基础知识,特别是异步编程(这篇教程主要用到的是回调函数)和 Node 模块机制,还有

如何使错误日志更加方便排查问题

旧街凉风 提交于 2019-12-18 04:01:04
在程序中打错误日志的主要目标是为更好地排查问题和解决问题提供重要线索和指导。但是在实际中打的错误日志内容和格式变化多样,错误提示上可能残缺不全、没有相关背景、不明其义,使得排查解决问题成为非常不方便或者耗时的操作。而实际上,如果编程的时候稍加用心,就会减少排查问题的很多无用功。 在阐述如何编写有效的错误日志之前, 了解错误是怎么产生的, 非常重要。 错误是如何炼成的 对于当前系统来说, 错误的产生由三个地方引入: 1. 上层系统引入的非法参数。 对于非法参数引入的错误, 可以通过参数校验和前置条件校验来截获错误; 2. 与下层系统交互产生的错误。 与下层交互产生的错误, 有两种: a. 下层系统处理成功了,但是通信出错了, 这样会导致子系统之间的数据不一致; 对于这种情况, 可以采用超时补偿机制,预先将任务记录下来,通过定时任务在后续将数据订正过来。 更好的设计方案 ? b. 通信成功了,但是下层处理出错了。 对于这种情况, 需要与下层开发人员沟通, 协调子系统之间的交互; 需要根据下层返回的错误码和错误描述做适当的处理或给予合理的提示信息。 无论哪一种情况, 都要假设下层系统可靠性一般, 做好出错的设计考虑。 3. 本层系统处理出错。 本层系统产生错误的原因: 原因一: 疏忽导致。 疏忽是指程序员能力完全可避免此类错误但实际上没做到。比如将 && 敲成了 & , == 敲成了 =

今天来讲下白盒测试和黑盒测试的区别

让人想犯罪 __ 提交于 2019-12-16 17:52:25
一. 软件测试方法 软件测试方法:白盒测试、黑盒测试、灰盒测试、静态测试、动态测试 白盒测试:是一种测试用例设计方法,在这里盒子指的是被测试的软件,白盒,顾名思义即盒子是可视的,你可以清楚盒子内部的东西以及里面是如何运作的,因此白盒测试需要你对系统内部的结构和工作原理有一个清楚的了解,并且基于这个知识来设计你的用例。 白盒测试技术一般可被分为静态分析和动态分析两类技术。 静态分析主要有:控制流分析技术、数据流分析技术、信息流分析技术。 动态分析主要有:逻辑覆盖率测试(分支测试、路径测试等),程序插装等。 白盒测试优点:迫使测试人员去仔细的思考软件的实现;可以检测代码中的每条分支和路径;揭示隐藏在代码中的错误;对代码的测试比较彻底;最优化。 白盒测试缺点:昂贵;无法检测代码中遗漏的路径和数据敏感性错误;不验证规格的正确性。 黑盒测试又叫功能测试,这是因为在黑盒测试中主要关注被测软件的功能实现,而不是内部逻辑。在黑盒测试中,被测对象的内部结构,运作情况对测试人员是不可见的,测试人员对被测产品的验证主要是根据其规格,验证其与规格的一致性。 在绝大多数没有用户参与的黑盒测试中,最常见的测试有:功能性测试、容量测试、安全性测试、负载测试、恢复性测试、标杆测试、稳定性测试、可靠性测试等。 灰盒测试:白盒测试和黑盒测试往往不是决然分开的,一般在白盒测试中交叉使用黑盒测试的方法

python登陆代码简单逻辑

瘦欲@ 提交于 2019-12-14 15:56:48
孩子:妈妈,我想要一个登陆的接口 妈妈:写,现在写,写1个够吗? 孩子:够了,妈妈真好,谢谢妈妈。 需求写一个简单的登陆逻辑: 1.定义一个账号和密码 2.输入账号和密码,密码要求密文 3.输入正确提示“登录成功”,输入错误提示“账号或密码错误” _username = "zhangtianci" _password = "zz991213" import getpass username = input("请输入账号:") password = getpass.getpass("请输入密码:") if username == _username and password == _password: print("登陆成功,欢迎您:",password) else: print("登陆失败,账号或者验证码错误") 来源: https://www.cnblogs.com/ztcbug/p/12039686.html

python之路——异常处理

走远了吗. 提交于 2019-12-06 14:33:54
转自Eva_J https://www.cnblogs.com/Eva-J/articles/7281240.html 阅读目录 一 错误和异常 二 异常处理 2.1 什么是异常处理? 2.2 为何要进行异常处理? 2.3 如何进行异常处理? 三 什么时候用异常处理 回到顶部 异常和错误 part1:程序中难免出现错误,而错误分成两种 1.语法错误(这种错误,根本过不了python解释器的语法检测,必须在程序执行前就改正) #语法错误示范一 if #语法错误示范二 def test: pass #语法错误示范三 print(haha 语法错误 2.逻辑错误(逻辑错误) #用户输入不完整(比如输入为空)或者输入非法(输入不是数字) num=input(">>: ") int(num) #无法完成计算 res1=1/0 res2=1+'str' 逻辑错误 part2:什么是异常 异常就是程序运行时发生错误的信号,在python中,错误触发的异常如下 part3:python中的异常种类 在python中不同的异常可以用不同的类型(python中统一了类与类型,类型即类)去标识,不同的类对象标识不同的异常,一个异常标识一种错误 l=['egon','aa'] l[3] 触发IndexError dic={'name':'egon'} dic['age'] 触发KeyError s=

相关错题

醉酒当歌 提交于 2019-12-04 13:45:25
使用SqlSessionTemplate映射接口实现数据库操作,下列说法正确的是()   A.使用SqlSessionTemplate的selectOne()方法获取映射器实例;   B.使用SqlSessionTemplate的getInstance()方法获取映射器实例;   C.使用SqlSessionTemplate的getMapper方法获取映射器实例;   D.必须提供实现DAO接口的实现类; 正确答案 :C   试题解析: 使用SqlSessionTemplate的getMapper方法可以完成映射接口的实现,可以没有DAO实现的类,这种方式不容易产生错误,并且在编译期就能识别错误。而且命名空间发生变化,也不会导致很多地方需要修改,易于维护。故选c 关于Spring的声明式事务管理,下面说法正确的是()   A.声明式事务是侵入式的,需要修改程序代码;   B.使用声明式事务时,我们主要关注“在哪儿”和“采取什么样的事务策略”;   C.配置声明式事务需要tx和aop两个命名空间的支持;   D.事务管理器的实现由负责数据库操作的Hibernate框架提供; 正确答案: BC 试题解析:    声明式事务:在Spring配置文件中对事务进行配置,无须在程序中写代码;(建议使用)         我对”声明式“的理解是这样的:Spring配置文件中定义好了这样一个规则,

python基础(21):异常处理

僤鯓⒐⒋嵵緔 提交于 2019-12-04 00:25:11
1. 异常和错误 1.1 错误 程序中难免出现错误,而错误分成两种 1.1.1 语法错误 语法错误:这种错误,根本过不了python解释器的语法检测,必须在程序执行前就改正。 #语法错误示范一 if #语法错误示范二 def test: pass #语法错误示范三 print(haha 1.1.2 逻辑错误 #用户输入不完整(比如输入为空)或者输入非法(输入不是数字) num=input(">>: ") int(num) #无法完成计算 res1=1/0 res2=1+'str' 1.2 什么是异常 异常就是程序运行时发生错误的信号,在python中,错误触发的异常如下: 1.3 异常种类 在python中不同的异常可以用不同的类型(python中统一了类与类型,类型即类)去标识,不同的类对象标识不同的异常,一个异常标识一种错误。 1.3.1 异常例子 1.触发IndexError: l=['egon','aa'] l[3] 2.触发KeyError dic={'name':'egon'} dic['age'] 3.触发ValueError s='hello' int(s) 1.3.2 常用异常 AttributeError 试图访问一个对象没有的树形,比如foo.x,但是foo没有属性x IOError 输入/输出异常;基本上是无法打开文件 ImportError