python 如何跳过异常继续执行

我用try...except...处理异常的时候,只要有一个异常,程序就不继续执行了。比如当我move一个文件的时候,如果目标文件以存在,那么程序就会终止对文件的移动。我现在不想让它终止程序,因为我后面还有需要移动的文件。不能因为一个文件的移动错误,导致后面的文件都无法移动。

下面有两种解决方法,第一种是类似if..else..;另外一种是使用语句来实现继续执行;

方法一:使用try...except...语句,类似于if...else...,可以跳过异常继续执行程序,这是Python的优势

用法如下:

方法二:使用语句来继续执行;

拓展资料

异常处理特点:

1.在应用程序遇到异常情况(如被零除情况或内存不足警告)时,就会产生异常。

2.发生异常时,控制流立即跳转到关联的异常处理程序(如果存在)。

3.如果给定异常没有异常处理程序,则程序将停止执行,并显示一条错误信息。

4.可能导致异常的操作通过 try 关键字来执行。

5.异常处理程序是在异常发生时执行的代码块。在 C# 中,catch 关键字用于定义异常处理程序。

6.程序可以使用 throw 关键字显式地引发异常。

7.异常对象包含有关错误的详细信息,其中包括调用堆栈的状态以及有关错误的文本说明。

8.即使引发了异常,finally 块中的代码也会执行,从而使程序可以释放资源。

参考资料来源:百度百科:异常处理

温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-06-02

使用try...except...语句,类似于if...else...,可以跳过异常继续执行程序,这是Python的优势

用法如下:

try:            # 可能会出现异常的一段代码
    command_1   # 如果command_1出现异常,则不执行command_1以及之后的语句
    command_2   # command_1如果正常,则会执行
except:         # try中任意一行语句出现异常,直接跳转至except,程序继续运行
    command_3
    command_4

本回答被网友采纳
第2个回答  2011-05-31
# encoding: utf-8

import os
import glob
import shutil

backuptarget = r'E:\backup'
srcpath = r'D:\workspace\Projects\DNCSS\python'

def target_mapper(fullpath):
''' 根据文件名映射目标文件名
path, fname = os.path.split(fullpath)
return os.path.join(backuptarget, fname)

for f in glob.glob(os.path.join(srcpath,'log', '*.log')):
try:
shutil.move(f, target_mapper(f))
except:
continue # 再循环中捕获到异常后要求继续即可本回答被提问者采纳
第3个回答  2018-04-19
try:
    for file in file_list:
        file.XXXXX
except:
    continue
    
continue是跳过错误的继续执行下一个,而break则是中断当前for循环,看需要选择吧。

相似回答