×

try except

try except(python try except有什么用)

admin admin 发表于2023-05-06 20:18:13 浏览79 评论0

抢沙发发表评论

本文目录

python try except有什么用


1.程序运行的时候,出现异常,并不一定需要中止程序,因为可能这个异常,可能这种异常时可处理的,或者是能预期到的异常,这个时候,我们需要知道到底是哪种异常,然后做相对于的后续处理。比如,QQ传输文件,万一网络不稳定,正在传输的文件失败了,这个时候,异常发生了,但不能说你QQ出问题了,需要重启吧,只需要捕获文件传输失败的异常就可以了,其他进程该干嘛干嘛。但有些时候,比如网络中断了,这个时候,捕获的异常就要中断,或者挂起绝大部分进程了,因为大部分进程断网后是无法继续的,这个时候,也是需要知道具体的异常是哪一类。
2. debug的时候需要具体的错误信息。

在python中用try except能输出哪行报错吗


异常信息的获取对于程序的调试非常重要,可以有助于快速定位有错误程序语句的位置。下面介绍几种python中获取异常信息的方法,这里获取异常(Exception)信息采用try...except...程序结构。

1、str(e)返回字符串类型,只给出异常信息,不包括异常信息的类型,如1/0的异常信息’integer division or modulo by zero’。

2、repr(e),给出较全的异常信息,包括异常信息的类型,如1/0的异常信息“ZeroDivisionError(’integer division or modulo by zero’,)“。

3、e.message,获得的信息同str(e)。

4、采用traceback模块,需要导入traceback模块,此时获取的信息最全,与python命令行运行程序出现错误信息一致。使用traceback.print_exc()打印异常信息到标准错误,就像没有获取一样,或者使用traceback.format_exc()将同样的输出获取为字符串。你可以向这些函数传递各种各样的参数来限制输出,或者重新打印到像文件类型的对象。


python大佬们,能不能告诉,while中try, break,except ,到底都是啥意思吗


while是循环语句,因为有些开发需要,可以让程序一直执行同一个操作,这就叫循环,而当得到结果不再需要循环时,则用break语句跳出循环,避免程序进入死循环

比如:

try和except是配套出现的,因为开发过程中,总会遇到异常(报错),当程序抛出异常整个都会停止,不再运行。利用try语句可以对某某代码块进行异常捕获,对抛出的异常进行刻意的处理,可以抛出异常,也可以不让其抛出异常。

并且如果程序被开发出来给用户用,如果用户操作不当导致抛出异常,对于用户来说,那些报错信息是看不懂的,所以可以用try语句进行规避报出那些专业的信息,而给一个用户可以看懂的信息。

try语句其实也是一种判断语句,当try打头即表示对这段代码进行异常处理,except 跟的语句就是异常类,用于捕获异常类

比如:

整形数据和字符串相加,因为不是一个类型的数据,相加肯定会报错的,这里报了一个异常类TypeError,意思就是类型错误,所以可以用try语句处理异常:

补充:

break必须在循环语句里使用,python的循环语句有for和while。


关于try-except,哪个选项的描述是错误的


 B,程序不立刻崩,返回错误信息之后尝试继续执行。

语法错误,应该改成下列语法:

python3 中捕捉异常需要使用try/except语句,具体格式如下:

try:

《语句》        #运行别的代码

except 《名字》:

《语句》 #如果在try部份引发了’name’异常

except 《名字》,《数据》:

《语句》        #如果引发了’name’异常,获得附加的数据

else:《语句》        #如果没有异常发生

编辑如下:

try的工作原理

当开始一个try语句后,python就在当前程序的上下文中作标记,这样当异常出现时就可以回到这里,try子句先执行,接下来会发生什么依赖于执行时是否出现异常。

如果当try后的语句执行时发生异常,python就跳回到try并执行第一个匹配该异常的except子句,异常处理完毕,控制流就通过整个try语句(除非在处理异常时又引发新的异常)。

如果在try后的语句里发生了异常,却没有匹配的except子句,异常将被递交到上层的try,或者到程序的最上层(这样将结束程序,并打印缺省的出错信息)。


python中通过try-except语句提供什么功能


Python: 异常处理try-except语句和with语句的使用如下:

异常示例:

捕捉异常的方法之:try-except语句(可选as/else/finally子句)

try:

   被检测的语句块

except 异常类名 as err:  # as err 是可选功能 - 输出错误原因,err是错误原因名。

   异常处理的语句块

# 如果被检测的语句块没有异常, 则忽略except后面的语句,否则执行异常处理语句块。

异常示例:


python的try except语句


当Python脚本发生异常时我们需要捕获处理它,否则程序会终止执行。 异常处理 捕捉异常可以使用try/except语句。 try/except语句用来检测try语句块中的错误,从而让except...

例如:

#!/usr/bin/python

# -*- coding: UTF-8 -*-

try:

    fh = open(“testfile“, “w“)       #此处的“w”先为“r”

    fh.write(“这是一个测试文件,用于测试异常!!“)

except IOError:

    print(“Error: 没有找到文件或读取文件失败“)

else:

    print(“内容写入文件成功“)

    fh.close()


python中的tryexcept的用法


这里的Pickle和cPickle是模块名称不能用小写;cPickle 和 Pickle 是python的两个模块,提供了数据持久化的方法,其中cPickle是Pickle的C语言实现。
try:
import cPickle as p # 若能导入cPickle模块则导入,并以p命名
except:
import Pickle as p # 若导入cPickle模块导入错误,则导入Pickle,并以p命名

python3 中的try except Exception,e: 怎么不能用了变成什么了呢


语法错误,应该改成下列语法:

python3 中捕捉异常需要使用try/except语句,具体格式如下:

try:

《语句》        #运行别的代码

except 《名字》:

《语句》        #如果在try部份引发了’name’异常

except 《名字》,《数据》:

《语句》        #如果引发了’name’异常,获得附加的数据

else:《语句》        #如果没有异常发生

编辑如下:

“拓展资料“:

try的工作原理是,当开始一个try语句后,python就在当前程序的上下文中作标记,这样当异常出现时就可以回到这里,try子句先执行,接下来会发生什么依赖于执行时是否出现异常。

  • 如果当try后的语句执行时发生异常,python就跳回到try并执行第一个匹配该异常的except子句,异常处理完毕,控制流就通过整个try语句(除非在处理异常时又引发新的异常)。

  • 如果在try后的语句里发生了异常,却没有匹配的except子句,异常将被递交到上层的try,或者到程序的最上层(这样将结束程序,并打印缺省的出错信息)。

  • 如果在try子句执行时没有发生异常,python将执行else语句后的语句(如果有else的话),然后控制流通过整个try语句。


tryexcept


//在界面上放一个Timer控件,设置Interval为1000即1秒,当然也可以根据实际情况设置为100,500,以缩短判断时间。
//然后在Timer执行时,记录流逝时间。
//最后在你要处理的过程中,加入对流逝时间的判断,如果大于你预期的时间,则抛出异常。
//---------------------------------------------------
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Grids, ExtCtrls;
type
EMyException = class(Exception);
TForm1 = class(TForm)
StringGrid1: TStringGrid;
Button1: TButton;
Memo1: TMemo;
Memo2: TMemo;
Timer1: TTimer;
procedure Button1Click(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
UsedTime:Integer=0;//秒
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var ii:integer;
begin
UsedTime:=0;
Timer1.Enabled :=True;
Try
//以下为你自己的处理过程。中间加入对UsedTime的判断。如果大于你预定的时间,则抛出异常
for ii:=1 to 100000000 do
begin
application.ProcessMessages;
if UsedTime》=2 then
raise EMyException.Create(’Your custom error message! For example : Timeout!’);
end;
except
Showmessage(’TimeOut!’);
Timer1.Enabled :=False;
end;
end;
procedure TForm1.Timer1Timer(Sender: TObject);
begin
UsedTime:=UsedTime+1;
end;
end.
//这里面的关键是,在满足你设定的时间条件后,要用 Raise 抛出一个异常!就可以使程序直接进入 Except 语句里。

delphi的TRY EXCEPT语句


我不知道你具体的程序怎麼写的,你这段代码有错,是这样写的
if application.MessageBox(’是否添加记录’,’提示’,mb_yesno)=id_yes then
f2_query.Insert
else
application.MessageBox(’无法保存,数据类型不符’,’提示’,mb_yesno);
这里的判断不需要用try...except...end;