在 Python 函数中正确构造 try 和 except

Properly structure try and except in Python functions

我正在尝试理解 Python 中 try 和 except 的概念,我知道这可以用来解决代码中的问题,而不会中断应用程序的流程。

我正在开发一个具有客户端和开发人员端的应用程序。因此,我不想向用户展示确切的错误是什么,而是向他们展示他们可以看到的代码,然后报告并发布它,我可以根据该代码找到错误。我不知道该怎么做。

我查看了主题 Manually raising an exception in Python

我的程序有多个函数,这些函数通过计算连接在一起,即

def function_1(_input_):
   # do some jobs here get the result then, 
   result = function_2(result)
   return result

def function_2(_input_):
   # do some jobs here and get the result then, 
   result = function_3(result)
   return result

...

我想用错误消息和导致问题的函数捕获在此过程中发生的错误。 我已经实现了这样的东西:

def function_1(_input_):
   try:
      # do some jobs here get the result then, 
      result = function_2(result)
   except Exception as e:
      print(e)
   return result

def function_2(_input_):
   try:
      # do some jobs here and get the result then, 
      result = function_3(result)
   except Exception as e:
      print(e)
   return result
...

try子句的概念是避免程序崩溃。如果出现异常,程序将执行except子句下面的代码。如果你想获取异常并且不显示给用户,我建议你将它们写入文件。

def function_2(_input_):
   try:
      # do some jobs here and get the result then, 
      result = function_3(result)
   except Exception as e:
      with open('file_name', 'w') as f:
          f.write(e)
   return result

您可能想尝试 python 的 logging 功能。它是标准库的一部分。

https://docs.python.org/3/howto/logging.html

此外,日志输出仅向开发人员显示。您甚至可能会发现一些原本会错过的错误或漏洞。