异常处理

异常处理

送分小仙女□ 提交于 2020-02-24 07:55:10
什么是异常? 异常发生之后在他后面的代码就不执行了。 为什么要进行异常处理? 不处理你的程序还怎么运行? 异常处理的方法: 1,使用if判断语句 1 num1=input('>>: ') #输入一个字符串试试 2 int(num1) 正常的代码 1 num1=input('>>: ') #输入一个字符串试试 2 if num1.isdigit(): 3 int(num1) #我们的正统程序放到了这里,其余的都属于异常处理范畴 4 elif num1.isspace(): 5 print('输入的是空格,就执行我这里的逻辑') 6 elif len(num1) == 0: 7 print('输入的是空,就执行我这里的逻辑') 8 else: 9 print('其他情情况,执行我这里的逻辑') 10 11 ''' 12 问题一: 13 使用if的方式我们只为第一段代码加上了异常处理,但这些if,跟你的代码逻辑并无关系,这样你的代码会因为可读性差而不容易被看懂 14 问题二: 15 这只是我们代码中的一个小逻辑,如果类似的逻辑多,那么每一次都需要判断这些内容,就会倒置我们的代码特别冗长。 16 ''' 使用if进行异常处理 总结: 1、if判断式的异常处理只能针对某一段代码,对于不同的代码段的相同类型的错误你需要重复的if来进行处理。 2、在你的程序中频繁的写与程序本身无关

异常处理

岁酱吖の 提交于 2020-02-24 07:54:50
程序一旦发生错误,就从错误的位置停下来了,不在继续执行后面的内容 使用try和except就能处理异常   try是我们需要处理的代码   except 后面跟一个错误类型 当代码发生错误且错误类型符合的时候 就会执行except中的代码   except支持多分支   有没有一个能处理所有错误的类型 : Exception      有了万能的处理机制仍然需要把能预测到的问题单独处理      单独处理的所有内容都应该写在万能异常之前   else : 没有异常的时候执行else中的代码   finally : 不管代码是否异常,都会执行      finally和return相遇的时候 依然会执行      函数里做异常处理用,不管是否异常去做一些收尾工作 1 try: 2 3   错误 4 5 except ValueError: 6 print('输入的数据类型有误') 7 except Exception: 8 print('你错了,老铁') 9 else: 10 print('没有异常的时候执行else中的代码') 11 print('===========') 12 13 14 # def func(): 15 # try: 16 # f = open('file','w') 17 # '''''' 18 # return True 19 # except: 20 #

异常处理

淺唱寂寞╮ 提交于 2020-02-24 07:54:23
try...except可以将可能发生错误的语句放在try模块里面进行异常处理; try..except..else当没有异常发生时,else中的语句将会被执行。 处理一组异常可以这样写(其中e代表异常的实例): 1 data = {'a':1} 2 try: 3 pass 4 except (IOError ,ZeroDivisionError),e: 5 print e 用户自定义异常通过创建一个新的异常类,程序可以命名它们自己的异常。异常应该是典型的继承自Exception类,通过直接或间接的方式。以下为与RuntimeError相关的实例,实例中创建了一个类,基类为RuntimeError,用于在异常触发时输出更多的信息。在try语句块中,用户自定义的异常后执行except块语句,变量 e 是用于创建Networkerror类的实例 1 class Networkerror(RuntimeError): 2 def __init__(self, arg): 3 self.args = arg 4 5 6 try: 7 raise Networkerror("Bad hostname") 8 except Networkerror as e: 9 print('哦,也') else和finally语句示例: KeyError,FileNotFoundError都是错误类型

7.1.3 常见异常处理结构形式

不羁岁月 提交于 2020-02-24 07:49:23
  Python提供了多种不同形式的异常处理结构,基本思路都是一致的:先尝试运行代码,然后处理可能发生的错误。在实际使用时可以根据需要选择使用哪一种。   1 try ... except ...   Python异常处理结构中最基本的额结构是 try ... except ... 结构。其中 try 子句中的代码块包含可能会引发异常的语句,而except子句用来捕捉相应的异常。如果try子句中的代码块引发异常并被except子句捕获,则执行except子句的代码块;如果try中的代码扩没有出现异常则继续往下执行浴场处理结构后面的代码;如果出现异常但没有被except捕获,则继续往外抛出;如果所有层都没有捕获并处理该异常,则程序崩溃并将该异常呈现给最庸用户,这是我们最不希望发生的事情。该结构语法如下:    try:   #可能会引发异常的代码 except Exception[ as resaon]:   #如果try中的代码抛出异常并被except捕捉,就执行这里的代码 1 while True: 2 x = input('Please input:') 3 try : 4 x = int(x) 5 print('you have input {0}'.format(x)) 6 break 7 except Exception as e: 8 print('Error.') 9

找工作——异常处理

不想你离开。 提交于 2020-02-23 19:05:42
异常是指程序运行时(非编译时)所发生的非正常情况或错误,当程序违反了语义规则时,JVM就会将出现的错误表示为一个异常并抛出。这个异常可以在catch程序中进行捕获,然后进行处理。而异常处理的目的则是为了提高程序的安全性和鲁棒性。 JAVA提供了两种错误的异常类,分别为Error和Exception Error :表示在程序运行期间出现了非常严重的错误,并且该错误是不可恢复的,由于这属于JVM层次的严重错误,因此这种错误是会导致程序终止执行的。此外编译器不会检查Error是否被处理,因此在程序中不推荐捕获Error类型的异常。 OutOfMemoryError、ThreadDeath等都属于错误。 throwable Exception :表示可以恢复的异常,是编译器可以捕捉到的。 运行时异常(runtime exception):编译器没有强制对运行时异常进行捕获并处理,如果不对这种异常进行处理,当出现这种异常时,会由JVM来处理,出现运行时异常后,系统会一直网上曾抛,直到遇到处理代码位置。若没有处理块,如果是线程,那么这个线程就退出了,如果是主程序异常那么整个程序就退出了。 所以,如果不对运行时异常进行处理,后果是非常严重的,一旦发生,要么线程终止,要么是主程序终止。 检查异常(checked exception):所有继承自Exception不是运行时异常的异常都是检查异常

第二十一天包和异常处理

一个人想着一个人 提交于 2020-02-22 21:23:30
1.json的格式化功能: import json data={'username':['梨花','二愣子'],'sex':'male','age':15} json_dic2=json.dumps(data,sort_keys=True,indent=2,separators=(',',':'),ensure_ascii=False) print(json_dic2) 结果为 { "age":15, "sex":"male", "username":[ "梨花", "二愣子" ] } View Code   注;ensure_ascii 当它为True 的时候,所有的非ascii码显示为\uxxxx序列,只需要在调用dump时将ensure_ascii设置成为False既可以显示正常的中文文字   separators 分隔符,实际上是(item_separator,dic_separator)的一个元组,默认就是(',',':'),这表示dictionary内keys之间用逗号隔开,而keys和values之间用冒号隔开。   sor_keys:将数据根据keys的值进行排序 2.包的讲解:   2.1创建多个文件(包就是文件里含有__init__.py文件就是)(把解决同一类问题的模块放在同一个文件夹中成为包)(如果创建的文件已经存在,在进行编译会报错) import os

python基础学习笔记之异常处理

◇◆丶佛笑我妖孽 提交于 2020-02-22 14:59:57
代码错误类型 〉代码运行可能会意外各种错误 ① 程序的逻辑错误、用户输入不合法等都会引发异常,但它们不会导致程序崩溃 ② 可以利用python提供的异常处理机制,在异常出现时及时捕获并从内部消化掉 〉语法错误:SyntaxError 〉除以0错误:ZeroDivisionError 〉列表下标越界:IndexError 〉类型错误:TypeError 〉访问变量不存在:NameError 〉字典关键字不存在:KeyError 〉未知的变量属性:AttributeError 〉以上这些错误会引起程序中止退出,如果希望掌控意外,就需要在可能出错误的地方设置陷阱捕捉错误 捕捉错误 〉try-except语句 try : < 检测语句 > except < 错误类型 > [ as e ] : < 处理异常 > try: # 为缩进的代码设置陷阱 except: # 处理错误的代码 针对不同异常可以设置多个except 〉try-finally语句 try : < 检测语句 > except < 错误类型 > [ as e ] : < 处理异常 > finally : < 语句块 > finally: # 无论出错否,都执行的代码 如果try语句块运行时没有出现错误,会跳过except语句块执行finally语句块的内容 〉else语句 try : < 检测语句 > except <

.NET 并行(多核)编程系列之五 Task执行和异常处理

天大地大妈咪最大 提交于 2020-02-22 11:46:44
.NET 并行(多核)编程系列之五 Task执行和异常处理   前言:本篇主要讲述等待task执行完成。   本篇的议题如下:    1. 等待Task执行完成   2. Task中的异常处理   系列文章链接:    .NET 4 并行(多核)编程系列之一入门介绍   .NET 4 并行(多核)编程系列之二 从Task开始   .NET 4 并行(多核)编程系列之三 从Task的取消   .NET 4 并行(多核)编程系列之四 Task的休眠   .NET 并行(多核)编程系列之五 Task执行和异常处理   .NET 并行(多核)编程系列之六 Task基础部分完结篇   .NET 并行(多核)编程系列之七 共享数据问题和解决概述   首先注意一点:这里提到的"等待"和之前文章提到的"休眠"意思是不一样的:    等待 :在等待一个task的时候,这个task还是在运行之中的,"等待"相当于在监听运行的task的执行情况。    休眠 :让tasku不运行。   在上篇文章中介绍了如果从Task中获取执行后的结果:在Task执行完成之后调用Task.Result获取。其实也可以用其他的方法等待Task执行完成而不获取结果,这是很有用的:如果你想等待一个task完成之后再去做其他的事情。而且我们还可以等待一个task执行完成,或者等待所有的task执行完成

Swift - 异常处理

你说的曾经没有我的故事 提交于 2020-02-22 09:19:16
Swift 对 Error Handling详解 苹果官方文档解释 跟其它语言一样,Swift的异常处理是在程序抛出异常后的处理逻辑。 Swift提供了一流的异常抛出、捕获和处理的能力。跟Java语言类似, Swift的异常并不是真正的程序崩溃, 而是程序运行的一个逻辑分支;Swift和Java捕获异常的时序也是一样的。当Swift运行时抛出异常后并没有被处理, 那么程序就会崩溃。 在Swift语言中使用Error表示异常, 作用同Java的Exception类或Object-C的NSError类。 苹果建议使用枚举作为异常类型(为什么不推荐用类或者结构体?答案是枚举数据类型本身就是分成若干种情况,很适合做逻辑分支判断条件)。 enum VendingMathineError: Error { case invalidSelection case insufficientFunds(coinsNeed: Int) case outOfStack } 上面声明了枚举类型VendingMathineError,继承于Error。 注意Swift的所有异常类型都继承于Error, 就像Java所有异常类都继承于Exception一样。 类似于Java处理异常的try/catch/finally, Swift提供了 try、try?、try!、catch、throw、throws

异常处理

我只是一个虾纸丫 提交于 2020-02-22 08:23:52
什么是异常? /* * 异常:程序出现了不正常的情况 * * 程序的异常:Throwable * 严重问题:Error 这种问题我们一般不处理,因为处理不了,比如内存溢出 * 问题: Exception * 编译期问题:不是RuntimeException的异常是必须进行处理de,因为你不处理,编译就不能通过 * 运行期问题:RuntimeException。这种问题我们一般也不处理,因为这是你的问题,是因为你的代码 * 不够严谨,需要修改代码 * * 如果程序出现问题,我们没有处理,那么虚拟机会做出默认的处理: * 将异常的名称,原因以及出现的问题等输出到控制台。 * 同时会结束程序。 */ public class ExceptionDemo { public static void main(String[] args){ int a=10; // int b=2; int b=0; System.out.println(a/b); System.out.println("over"); } } View Code /* * 我们如何处理异常呢? * A:try...catch...finally * B:throws 抛出 * * try...catch...finally处理格式: * try{ * 可能出现异常的代码 * }catch(异常名变量){ * 针对问题的处理