python怎么在异常处理后继续顺序执行?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python怎么在异常处理后继续顺序执行?相关的知识,希望对你有一定的参考价值。
try:
12/0 #(1)
print "I'm pass" #(2)
except Exception, e:
print e
# how can i go back to (2)
当在(1)捕获异常后怎么返回去继续执行(2)
更确切的说应该是这样的场景
try:
open("file1.txt")
open("file2.txt")
open("file3.txt")
except Exception, e:
print e
比如file1不存在,我希望能打印erro,但能继续去open file2 而不是跳出
try:
12/0
except Exception,e
print e
finally:
print "I'm pass"
或者为try except语句加上finally块,无论是否出现异常都会执行finally中的语句追问
我的意思一段代码里如果有异常,捕获后打印提示,但能继续往下执行,我并不知道异常在哪一行出现,按你所说,我是必须把要捕获的异常行挑出来,其他的挑出来放到finally语句块,我想要的是打开file1失败,只是打印错误,但继续去执行open file2
追答既然每条语句都可能出现异常,每条语句都必须执行,用多个try ...except块就可以了,
try:
语句1
except:
异常处理
try:
语句2
except:
异常处理
try :
print i
i = i/0
except Exception as e:
print e
continue
Java中trycatchfinally执行顺序
try、catch和finally
try块:用于捕获异常。
- 后面可以有0个或多个catch块。
- 只能有0个或1个finally块。
- try块后面,如果没有catch块,则后面必须有一个finally块。
- 执行代码捕获异常后,进入catch块,try中出现异常代码处后面的代码不会再继续执行。
catch块:用于处理处理try中捕获的异常。
- 可以有多个catch块,进入一个catch块后,执行完毕后,如果有finally块,则进入finally块。即使后面还有catch块,也不会再进入其他catch块。
finally块:无论是否捕获或处理异常,finally块中的代码都会被执行。
- 当try块中或者catch块中遇到return语句时,先执行完finally里面的代码后,再执行return返回语句。
可以有多个catch块,并且try块后面,只能有0个或1个finally块
public static void main(String[] args) {
try {
System.out.println("try...");
}catch (ArithmeticException e){
System.out.println("ArithmeticException...");
}catch (NullPointerException e){
System.out.println("NullPointerException...");
}
finally {
System.out.println("finally...");
}
}
//输出结果:
//try...
//finally...
try块后面,如果没有catch块,则后面必须有一个finally
public static void main(String[] args) {
try {
System.out.println("try...");
}
finally {
System.out.println("finally...");
}
}
//输出结果:
//try...
//finally...
执行代码捕获异常后,进入catch块,try中出现异常代码处后面的代码不会再继续执行
public static void main(String[] args) {
try {
System.out.println("try...");
int a = 0;
String str = null;
System.out.println(str.toString());
a = a / 0;
} catch (ArithmeticException e) {
System.out.println("ArithmeticException...");
} catch (NullPointerException e) {
System.out.println("NullPointerException...");
} finally {
System.out.println("finally...");
}
}
//输出结果:
//try...
//NullPointerException...
//finally...
当try块中或者catch块中遇到return语句时,先执行完finally里面的代码后,再执行return返回语句。
public static void main(String[] args) {
try {
System.out.println("try...");
return;
} catch (ArithmeticException e) {
System.out.println("ArithmeticException...");
} catch (NullPointerException e) {
System.out.println("NullPointerException...");
} finally {
System.out.println("finally...");
}
}
//输出结果:
//try...
//finally...
public static void main(String[] args) {
try {
System.out.println("try...");
int a = 0;
a = a / 0;
} catch (ArithmeticException e) {
System.out.println("ArithmeticException...");
return;
} catch (NullPointerException e) {
System.out.println("NullPointerException...");
} finally {
System.out.println("finally...");
}
}
//输出结果:
//try...
//ArithmeticException...
//finally...
以上是关于python怎么在异常处理后继续顺序执行?的主要内容,如果未能解决你的问题,请参考以下文章