想到本科时候学的Java,各种思想思路,但就是实践得少了,所以讲了也生疏,但让自己静静地敲一敲,你也就明白程序语言里没啥新鲜事。

今天来讲讲程序中的异常:

出现问题时会引发异常。例如,如果你尝试除以零,ZeroDivisionError则会引发或者如果你尝试访问字典中不存在的键,KeyError则会引发此问题。

empty_dict = {}

# empty_dict['key'] # Uncomment to see the traceback

try-except结构

如果你知道代码块可能以某种方式失败,则可以使用try-except结构以所需方式处理潜在异常。

# Let's try to open a file that does not exist

file_name = 'not_existing.txt'

try:

with open(file_name, 'r') as my_file:

print('File is successfully open')

except FileNotFoundError as e:

print('Uups, file: {} not found'.format(file_name))

print('Exception: {} was raised'.format(e))

如果你不知道代码块可能引发的异常类型,则可以使用Exception捕获所有异常。此外,你可以拥有多个except语句。

def calculate_division(var1, var2):

result = 0

try:

result = var1 / var2

except ZeroDivisionError as ex1:

print("Can't divide by zero")

except Exception as ex2:

print('Exception: {}'.format(ex2))

return result

result1 = calculate_division(3, 3)

print('result1: {}'.format(result1))

result2 = calculate_division(3, '3')

print('result2: {}'.format(result2))

result3 = calculate_division(3, 0)

print('result3: {}'.format(result3))

try-except也可以在外部范围内

创建自定义异常

在你自己的应用程序中,你可以使用自定义异常向用户发出有关在应用程序运行时发生的错误的信号。

import math

# Define your own exception

class NegativeNumbersNotSupported(Exception):

pass

# Dummy example how to use your custom exception

def secret_calculation(number1, number2):

if number1 < 0 or number2 < 0:

msg = 'Negative number in at least one of the parameters: {}, {}'.format(

number1, number2)

raise NegativeNumbersNotSupported(msg)

return math.sqrt(number1) + math.sqrt(number2)

# Uncomment to see the traceback

# result = secret_calculation(-1, 1)

好啦,赶紧自己试一下吧

python exceptions怎么用_Python基础介绍 | Exceptions异常相关推荐

  1. python最基本的规则是什么_Python基础介绍(一)

    Python基础介绍(一) 1. python是什么编程语言 编译型与解释型 ​编译器吧源程序的每一条语句都编译成机器语言,并保存成二进制文件,这样运行时计算机可以直接以极其语言来运行此程序,速度很快 ...

  2. python多个判断条件_Python基础介绍 | 条件判断Conditionals

    先前我们已经学了如何使用Strings和Numbers两个数据类型,还有其他的数据类型,例如列表啊.字典啊,我们先放着不学,但以下的内容多多少少少会涉及. 今天学啥呢?我们来看看条件判断,即Condi ...

  3. python文件操作解码_python基础3之文件操作、字符编码解码、函数介绍

    内容概要: 一.文件操作 二.字符编码解码 三.函数介绍 一.文件操作 文件操作流程: 打开文件,得到文件句柄并赋值给一个变量 通过句柄对文件进行操作 关闭文件 基本操作: 1 #/usr/bin/e ...

  4. python中newfile是干嘛用的_Python基础介绍 | File I\O 读写文件

    如何用Python读写文件呢?我们有许多种办法,包括使用Pandas或者使用os相关的工具,我们来看一下: 首先,得明白文件路径的事情: import os current_file = os.pat ...

  5. python类介绍_Python基础介绍 | Class类

    自从改用Python做数据挖掘以来,我就很少用面向对象的内容了,那啥是面向对象呢? 可以这么理解,如果我们能把代码组合成一个一个可以重复使用的类别,那么这能使程序的可复用性更高,以后只要用这个类别的东 ...

  6. python中test的用法_Python基础介绍 | 使用pytest进行测试

    Pytest 是 Python 的一种单元测试框架,与 Python 自带的 unittest 测试框架类似,但是比 unittest 框架使用起来更简洁,效率更高. Pytest 是一个成熟的全功能 ...

  7. python常用变量名_python基础知识整理

    Python Python开发 Python语言 python基础知识整理 序言:本文简单介绍python基础知识的一些重要知识点,用于总结复习,每个知识点的具体用法会在后面的博客中一一补充程序: 一 ...

  8. python socket server库_python基础之socket与socketserver

    ---引入 Socket的英文原义是"孔"或"插座",在Unix的进程通信机制中又称为'套接字'.套接字实际上并不复杂,它是由一个ip地址以及一个端口号组成.S ...

  9. python文件替换一行_python基础_文件操作实现全文或单行替换的方法

    这篇文章主要介绍了关于python基础_文件操作实现全文或单行替换的方法,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下 python修改文件时,使用w模式会将原本的文件清空/覆盖.可以 ...

最新文章

  1. 神经网络入门-MLP, RNN, BiRNN
  2. 【转】采购订单长文本增强
  3. 劲脆鸡米花、鸡排、黄金鸡块
  4. 前端学习(1604):脚手架props与state
  5. css设置按钮竖直方向居中_前端设计师必须知道的10个重要的CSS技巧
  6. Python高级特性:Python迭代、生成器、列表生成式
  7. SQL语言:DQL,DML,DDL,DCL
  8. html文本框(input)不保存缓存记录
  9. 使用JMeter进行简单的app接口测试
  10. 【数字信号处理】划重点
  11. HTML作业制作服装推广软文,盘点:服装推广软文写作技巧
  12. Java instead of 用法_实例讲解instance of 运算符用法
  13. windows10自带屏保设置
  14. 新办的卡为什么显示无服务器,为什么插入卡后显示无服务,有时有有时又没有?...
  15. asp 遇到过的问题集锦,附加asp语句添加数据库和生成表,asp命令更改指定文件的文件名,asp值传递的应用091116小结...
  16. usleep java_usleep是否创建了线程取消点?
  17. 分布式爬虫系统的设计与实现(SourceForge.net数据爬取)
  18. 【软件安装】金蝶安装指南
  19. 【cocos2d-x入门实战】微信飞机大战之十三:游戏场景过渡
  20. 百度知道推广,常见的3个小窍门

热门文章

  1. 云计算学习笔记005---Hadoop HDFS和MapReduce 架构浅析
  2. 数据库零碎---mysql编码设置,与乱码分析
  3. Android异常总结---type Status report message HTTP method GET is not supported by this URL
  4. 评测百万分之一时的精度指标
  5. vs2008 代码对齐方式
  6. 多线程 CreateThread与_beginthreadex本质区别
  7. c语言中static使用方法
  8. 杭电2571 命运
  9. 综观java读取和创建excel方法
  10. php基本语法实验总结,PHP总结(一)基本语法内容