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

如何在python中抛出错误并使用自定义消息退出

赵健柏
2023-03-14

我见过有人建议使用sys。Python中的exit()。我的问题是,有没有其他方法可以退出当前脚本的执行,我的意思是终止,并出现错误。

大概是这样的:

sys.exit("You can not have three process at the same time.")

目前我的解决方案是:

print("You can not have three process at the same time.")
sys.exit()

共有3个答案

廖夜洛
2023-03-14

我知道这是一个老线程,但是你也可以提出这样的错误:

raise SystemExit('错误:3个进程不能同时运行')

这种方法的一个优点是您不必导入pythonsys模块。这在使用Python 3和Python 2的Linux上工作。我还没有在Windows或Mac操作系统上测试过它。

元胡媚
2023-03-14

有3种方法,Lvc提到的第一种方法是使用sys.exit

sys.exit('My error message')

第二种方法是使用print,print可以写几乎任何东西,包括错误消息

print >>sys.stderr, "fatal error"     # Python 2.x
print("fatal error", file=sys.stderr) # Python 3.x

第三种方法是引发我不喜欢的异常,因为它可以是try-catch

  raise SystemExit('error in code want to exit')

它可以这样被忽略

try:
  raise SystemExit('error in code want to exit')
except:
  print("program is still open")
山煜祺
2023-03-14

使用字符串调用sys.exit将起作用。文档明确提到了这种用途:

特别是,sys.exit("一些错误消息")是当错误发生时退出程序的快速方法。

 类似资料:
  • 我是一名Java编程新手(实际上已经在学习),我对如何处理不同的消息有些怀疑。 我的目标是将这些不同的消息包含在同一个类(CustomExcpse类)中,以避免在从其他类抛出新CustomExceptions的每个方法上一遍又一遍地编写相同的字符串。 到目前为止,我编码: > 一个自定义异常类,它从异常扩展而来,具有不同的消息(在示例中只有两个,但还有更多)作为Strings包含,当然还有构造函数

  • 安全测试人员声称,我应该清理返回的JSON(即转义这些符号),因为这可能会给旧的浏览器带来一些问题(即在浏览器中执行此JS代码)。 但是生成错误消息的是SpringBoot框架, 我在这里没有太多的控制权。 当然,我可以将参数定义为String,并自己进行验证,但我怀疑这是否是正确的方法。我的参数定义为Integer,我希望它保持这种方式。 做这件事最简单的方法是什么?

  • 我在数据库上实现查询层,使用和Spring Boot项目在sql数据库上执行CRUD操作。在GraphQL模式中,我提到了一些必须的字段,当这些字段在查询中没有提到时,它会以默认格式返回状态代码的错误消息。 错误: 这是我的代码与层架构模式 控制器: 服务: 配置: BookDataFetcher: 上面的代码按预期工作,但我这里的问题是如何自定义错误消息?在错误消息中,我想提及状态,因为这是来自

  • 我想拦截一个错误的JSON输入,并使用Dropwizard应用程序返回自定义错误消息。我遵循了这里提到的定义自定义异常映射器的方法:http://gary-rowe.com/agilestack/2012/10/23/how-to-implement-a-runtimeexceptionmapper-for-dropwizard/。但它不适合我。同样的问题也被问到这里https://groups.

  • 我正在尝试使用Spring Boot 2.1给出的验证JWT令牌内的声明。问题是Spring总是使用默认异常消息抛出异常: 即使我创建了一个扩展ClientAuthenticationException的自定义异常,我也会收到相同的异常消息。 当JWT声明验证失败时,我想修改异常消息。这是我的配置类: 这是我的JWTClaimVerifier类: 当JWT声明验证失败时,我希望我的自定义异常消息有

  • 我在服务层的spring-boot应用程序中使用了Hystrix(Camden.sr7版本),而没有回退方法。Service的方法之一如下所示: 对于这样的响应,不清楚实际上是从哪个方法抛出异常的。如果我将版本更改为brixton.sr5(以前的版本),它将返回清晰的响应: 因此Hystrix的新版本(实际上是spring-cloud-dependencies的新版本)不会抛出HystrixRun