当前位置: 首页 > 知识库问答 >
问题:

Python:3函数内部的错误处理

阎自怡
2023-03-14

我创建了一个类和函数。 该函数正在创建一个新对象并执行其他操作,并返回该对象。

class DoublyLinkedList:
    def __init__(self, element):
        
        self.item = element
        self.before = None
        self.after = None
        
    def __str__(self):

        
        if self.before is None:
            return f'Previous node : {None}, item : {self.item}, Next node : {self.after.item};' 
        
        elif self.after is None:
            return f'Previous node : {self.before.item}, item : {self.item}, Next node : {None};'
        
        else:
            return f'Previous node : {self.before.item}, item : {self.item}, Next node : {self.after.item};'

def addToHeadDLL(element, head):

    try:
        name = DoublyLinkedList(element)

    except NameError:
        print('Please enter correct parameters')

    else:
        head.before = name
        name.after = head
        print('List added to Head')
        return name

a = DoublyLinkedList(1)
b = DoublyLinkedList(2)

a.after = b
b.before = a

c = addToHeadDLL(3, a) #Works

d = addToHeadDLL(4, e) #Produces NameError

当NameError发生时,它必须打印“请输入正确的参数”。 但是输出是这样的,

List added to Head
Traceback (most recent call last):
  File "c:/Users/JBallipalli/Desktop/Codes/dll.py", line 43, in <module>
    d = addToHeadDLL(4, e)
NameError: name 'e' is not defined

请帮我解决这个。。。

共有3个答案

苏承载
2023-03-14
d = addToHeadDLL(4, e) #Produces NameError

你在哪里定义变量e的值?

麻阳
2023-03-14

不要在函数中使用tryexcept

如果您想要NameError,那么调用try块中的函数AddToHeaddLL

像那样

try:
    d = addToHeadDLL(4, e) #Produces NameError
except:
    print("Name error")
璩涵衍
2023-03-14

当您调用函数时,会返回NameError,因为python不知道要将什么作为E传递。
它永远不会到达AddToHeaddLL中的异常处理部分。

 类似资料:
  • 在下面的代码中,当我试图将数据插入firebase Firestore时,数据被插入,但在返回promise时,它将错误作为内部错误返回。Hera是控制台记录的错误 在index.js中的console.log()上登录云函数时出错 引发内部错误的原因是什么

  • 本文向大家介绍PHP错误处理函数,包括了PHP错误处理函数的使用技巧和注意事项,需要的朋友参考一下 在 PHP 中,默认的错误处理很简单。一条错误消息会被发送到浏览器,这条消息带有文件名、行号以及描述错误的消息。 PHP 错误处理 在创建脚本和 Web 应用程序时,错误处理是一个重要的部分。如果您的代码缺少错误检测编码,那么程序看上去很不专业,也为安全风险敞开了大门。 本教程介绍了 PHP 中一些

  • 问题内容: 运行以下代码时(在Mac OS X 10.7的Mac上为Python 2.7.1) 我收到以下错误 我已经仔细检查了错误的制表符和/或空格。当我使用推荐的4个缩进空格时,可以确认代码失败并出现上述错误。当将返回值置于其他控制语句内时(例如,if,for等),也会发生此行为。 任何帮助,将不胜感激。谢谢! 问题答案: 在 返回 的语句才有意义,里面的功能:

  • 我分享的链接geeksforgeeks ide我写的代码https://ide.geeksforgeeks.org/ 在上面的代码中不断获得EO费罗尔 l=[list(map(int,input())] 视场误差:读取一行时的视场误差

  • 我搜索并尝试了我能找到的一切,但无法解决这个问题,我甚至试图使用简单的更新文档,但我得到同样的错误。 编辑只有在所有操作都可以成功执行的情况下,才希望批处理执行时应该做什么。示例:如果我对确实存在的文档进行了前两次更新,它们将按-1更新这些值,然后对不存在的文档进行两次删除操作,这不会导致我的函数出错(值将按-1更新,删除不会执行任何操作) 但是,如果我首先对不存在的文档进行两次删除操作,整个函数

  • 严格说来,Ruby中没有函数.但Kernel模块中定义的方法(可以在任何地方用做函数,因此)可被其他语言当做函数来调用.若您对这些方法进行再定义时,就必需考虑到对其他方面的影响. `str 把字符串str当做外部命令来运行,并以字符串方式返回命令的输出.使用`str`形式来调用该方法(还可以使用%x(...)表示法进行调用.请参考命令输出). 可以使用$?来了解命令的结束状态. 若您只想执行命令,

  • 我在过去多次部署Firebase功能。由于某些原因,最近(大约2-3天)我经常在部署时出错。我使用windows来释放代码。当我尝试在我的Linux系统和Mac系统中设置相同的项目时,部署工作正常。从Windows环境发布可能存在的问题。 以下是部署时遇到的问题。 ! 功能[付款(us-central1)]:部署错误。加载用户代码时函数失败。这可能是由于用户代码中的错误造成的。错误消息:错误:请检

  • 问题内容: 我正在努力用以下语法找出问题所在: 我不断收到错误消息: 等待是保留字 …但是在异步函数中不合法吗? 调度位来自 react-thunk 库。 问题答案: 为了使用,直接封装它的函数需要异步。根据您的评论,添加到内部函数可以解决您的问题,因此我将其发布在这里: 可能的话,您可以从外部函数中删除,因为它不包含任何异步操作,但这取决于该调用者是否期望返回承诺。