发生错误时如何防止控制台脚本关闭?

发布于 2025-02-12 20:29:23 字数 206 浏览 0 评论 0 原文

我制作了一个python程序,我使用 auto-py-to-exe 包装到 .exe 中我无法阅读错误。

而且我不想做:

try:
   #code
except:
   #print something

我希望它打印出原始的python错误,而不是立即使其立即关闭。

I made an python program that I packaged into .exe using auto-py-to-exe and if an error throws up the program shows the error and closes itself immediately, so I can't read the error.

And I don't want to make:

try:
   #code
except:
   #print something

I want it to print out the original python error and just make it not close immediately.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

夜唯美灬不弃 2025-02-19 20:29:23

有多种方法可以

使用 trackback 模块

示例使用 print_exc

import traceback

def hello():
 return 1/0

def my_program():
 try:
   hello()
 except Exception as _: # try to avoid generic exception handlers
   traceback.print_exc()

if __name__ == "__main__":
 my_program()

使用记录

使用记录模块的模块在许多情况下可以使用一些CLI FLAG或ENV变量来启用更多的详细记录。您还可以将所有日志转移到以后可以解析的文件中。

简单的记录示例

import logging

def cfg():
    fmt = "%(levelname)s %(asctime)s - %(message)s"
    logging.basicConfig(filename="my_program.log", filemode="w", format=fmt, level=logging.ERROR)


def hello():
    return 22/0

def my_program():
    try:
        hello()
    except Exception as _:
        logging.exception("an internal error happened!")

if __name__ == "__main__":
    cfg()
    my_program()

There are multiple ways to do this

Using the traceback module

Example using print_exc

import traceback

def hello():
 return 1/0

def my_program():
 try:
   hello()
 except Exception as _: # try to avoid generic exception handlers
   traceback.print_exc()

if __name__ == "__main__":
 my_program()

Using the logging module

Utilizing the logging module can be useful in many cases for example you can enable more verbose logging using some CLI flag or env variable. You can also dump all the logs into a file that can be parsed later.

Simple logging example

import logging

def cfg():
    fmt = "%(levelname)s %(asctime)s - %(message)s"
    logging.basicConfig(filename="my_program.log", filemode="w", format=fmt, level=logging.ERROR)


def hello():
    return 22/0

def my_program():
    try:
        hello()
    except Exception as _:
        logging.exception("an internal error happened!")

if __name__ == "__main__":
    cfg()
    my_program()
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文