我所说的处理错误的方法,其实是try:,exceptraise这两种。

首先抛出一个实例,

dictt={'a':1,'b':2,'c':3}
try:
if dictt['d']>1: #字典中没有'd'
print("right!")
except KeyError:
print("there is no 'd'")

该程序的运行结果:

  there is no 'd'

而改为raise时,执行结果却是:

aaarticlea/png;base64,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" alt="" />

显然,由于‘f’是不存在的,所以if无法执行,导致raise也不能执行

两者(try:,except和raise)的区别:

前者,无论if中条件是什么,都可以运行,不报错;而后者,if中的条件要符合一定标准,不然raise运行不了。还有,raise会中断程序,显示红色的错误提示,而红色的提示正是raise中设定的。

总而言之,raise的使用一般具有实际意义。典型的用法:定义了一个接受多个参数的函数,而其中一个参数类型错误,此时用raise进行错误提示非常合适。

Example:

#实现两个整数的加法运算
def summ(add1,add2):
if (type(add1))==type(1) and (type(add2))==type(1):
return (add1+add2)
else:
raise TypeError("The two parameters should be integers")

Python中两种处理错误方法的比较的更多相关文章

  1. python中两种拷贝目录方法的比较

    首先是用python自己的api: shutil.copytree('./build/tested/doc', './build/tested/build/doc') 优点是改变平台时不需要修改代码, ...

  2. python中两种方法实现二分法查找,细致分析二分法查找算法

    之前分析了好多排序算法,可难理解了呢!!(泣不成声)这次我要把二分查找总结一下,这个算法不算难度特别大,欢迎大家参考借鉴我不喜欢太官方的定义,太晦涩的语言,让人看了就头晕.我希望加入我自己的理解,能帮 ...

  3. UWP开发中两种网络图片缓存方法

    通常情况下,我们的程序需要从服务器读取图片,但如果需要不止一次读取某一张图片的话,就需要做本地缓存了,这样既为用户省一点流量,又能显得你的APP很快. 假如你已经知道了某一张图片的地址,那么第一件事就 ...

  4. Cesium 中两种添加 model 方法的区别

    概述 Cesium 中包含两种添加 model 的方法,分别为: 通过 viewer.entities.add() 函数添加 通过 viewer.scene.primitives.add() 函数添加 ...

  5. python中两种栈实现方式的性能对比

    在计算机的世界中,同一个问题,使用不同的数据结构和算法实现,所使用的资源有很大差别 为了方便量化python中算法的资源消耗,对性能做测试非常有必要,这里针对stack做了python语言 下的性能分 ...

  6. Mat中两种像素遍历方法比较

    小白,入门中,不足其指正.刚刚接触opencv,从一个Matlab风格的编程环境突然跳转到C++,实在有些不适.单就pixels scanning花了好长时间研究.opencv-tutorials给出 ...

  7. JAVA 中两种判断输入的是否是数字的方法__正则化_

    JAVA 中两种判断输入的是否是数字的方法 package t0806; import java.io.*; import java.util.regex.*; public class zhengz ...

  8. Python中防止sql注入的方法详解

    SQL注入是比较常见的网络攻击方式之一,它不是利用操作系统的BUG来实现攻击,而是针对程序员编程时的疏忽,通过SQL语句,实现无帐号登录,甚至篡改数据库.下面这篇文章主要给大家介绍了关于Python中 ...

  9. jsp中两种include的区别【转】

    引用文章:http://www.ibm.com/developerworks/cn/java/j-jsp04293/ http://www.cnblogs.com/lazycoding/archive ...

随机推荐

  1. SVM一点心得体会

    支持向量机的学习说是刚刚开始,又不合理,只能说隔了很长的时间再看,终于在分类这块的层面上有了新的认识. 总的来说,支持向量机分为线性支持向量机和非线性支持向量机,线性支持向量机又可以分为硬间隔最大化线 ...

  2. c# MongoDB 经纬度应用示例

    class Program      {          static string mongodb = "mongodb://127.0.0.1:27017";        ...

  3. BZOJ 1004 【HNOI2008】 Cards

    题目链接:Cards 听说这道题是染色问题的入门题,于是就去学了一下\(Bunside\)引理和\(P\acute{o}lya\)定理(其实还是没有懂),回来写这道题. 由于题目中保证"任意 ...

  4. [LeetCode] Flip Game 翻转游戏

    You are playing the following Flip Game with your friend: Given a string that contains only these tw ...

  5. 【java基础系列】一、常用命令行

    常用的DOS命令: dir:列出当前目录下的文件以及文件夹 md:创建目录 rd:删除目录 cd:进入指定目录 cd..:退回到上一级目录 cd\:退回到根目录 del:删除文件 exit:退出dos ...

  6. mysql函数大全

    对于针对字符串位置的操作,第一个位置被标记为1. ASCII(str) 返回字符串str的最左面字符的ASCII代码值.如果str是空字符串,返回0.如果str是NULL,返回NULL. mysql& ...

  7. canvas钟表

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  8. C# 在数组中判断是否存在某个数组值

    (1) 第一种方法: ,,}; ); // 这里的1就是你要查找的值 ) // 不存在 else // 存在 (2) 第二种方法: string[] strArr = {"a",& ...

  9. sql 取汉字首字母

    )) ) --用于加密 --WITH ENCRYPTION as begin declare @intLen int ) ) set @intLen = len(@str) set @strRet = ...

  10. 基于python的selenium自动化测试环境安装

    1. Python2安装 官方网站:https://www.python.org/downloads/ (python3或新版本已经默认集成了pip包和path,安装的时候打勾就行,可以直接跳过下面第 ...