【问题标题】:Stop a program within a function (python)在函数内停止程序(python)
【发布时间】:2018-07-16 10:13:19
【问题描述】:

我对编码有点陌生,我希望能够停止程序,并在可能的情况下从函数中抛出自定义错误消息

(如:

def Rounded_square(lots of inputs):
    radius = (calculation)
    if radius < 0:
        stop.program("The radius is negative")

)

【问题讨论】:

  • 你说的是例外吗?
  • 您的意思是停止还是暂停?您是在 GUI 环境还是命令行中?您使用的是什么操作系统?
  • 对不起,当我写停止的东西时我只是在抽象。是的,看起来例外是要走的路,谢谢大家(只是使用基本的 spyder 界面没什么特别的)。

标签: python function error-handling


【解决方案1】:

你想提出一个异常

raise ValueError("radius should be positive")

【讨论】:

  • 这个问题不够清楚,不能作为一个明确的答案。
  • @PeterWood:可能,似乎是最有可能的选择,而且由于 OP 说他是编码新手,因此值得研究例外情况
【解决方案2】:

要抛出自定义错误消息,您可以这样做

raise BaseException("my exception text")

可以查看内置异常类型here

或者退出程序,你可以调用

exit()

【讨论】:

    【解决方案3】:

    import os os.exit("The radius is negative")exit() 函数内的值将打印到 stderr 并且返回码将为 1(感谢 @peter-wood 的启示) 在此之前,您可以使用print 发送消息

    【讨论】:

    • 如果传递给exit 的不是整数,Python 会将其转换为字符串,打印到stderr,并以代码1 退出。见sys.exit
    • 不知道! ,谢谢,将编辑答案
    【解决方案4】:

    你可以在python中使用raise语句抛出异常:

    raise Exception('Message') # Exception: Message
    

    也可以创建自定义异常:

    class MyException(Exception):
      pass
    
    raise MyException('Message') # MyException: Message
    

    所以你应该使用:

    raise TypeError('The radius is negative')
    

    你应该阅读一些关于异常的教程:https://www.tutorialspoint.com/python/python_exceptions.htm

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-12-21
      • 1970-01-01
      • 1970-01-01
      • 2019-01-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多