【问题标题】:How can I change Error messages in python?如何更改 python 中的错误消息?
【发布时间】:2021-07-25 03:13:48
【问题描述】:

这是代码:

    A = np.array([ [x1**2, x1, z1], [x2**2, x2, z2], [x3**2, x3, z3] ])
    B = np.array([y1, y2, y3])
    B = B.T

    global X
    try:
        X = linalg.solve(A, B)
    except TracebackError:
        raise InputValueError('Input values nopt compatible') from None

所以基本上我想解决这个问题(通过 scipy)。如果我有两个相同的输入,我会得到一个回溯错误。为了使其更加清晰和干净,如果出现 Traceback 错误,我希望将其更改为“InputValueError('Input values not compatible')”。这个 try/except 究竟是如何工作的,我该如何正确使用它?

ps:“try”后面的代码显然是错误的,这就是我需要你帮助的部分

【问题讨论】:

    标签: python python-3.x numpy error-handling scipy


    【解决方案1】:

    不需要from None 部分

    try:
         X = linalg.solve(A, B)
    except np.linalg.LinAlgError as e:
         print("Got: ", e)
    
         raise InputValueError('Input values nopt compatible')
    

    【讨论】:

    • 然后说“'TracebackError' 没有定义”
    • @Janis 这不是您遇到的错误吗?如果没有,请附上您的错误并将except TracebackError as e: 更改为except <error you get> as e:
    • 这很奇怪,我是一个 Traceback 错误,但它不起作用......
    • 请将完整的错误输出附加到问题中
    • 没有你的解决方案:Traceback (most recent call last): File "C:\Users\Klipp\Desktop\IFR_PCS\IFR_PCS", line 32, in <module> find_equation(-1,0,1, -1,0,1, 10,0,1) File "C:\Users\Klipp\Desktop\IFR_PCS\IFR_PCS", line 23, in find_equation X = linalg.solve(A, B) File "C:\Program Files\Python38\lib\site-packages\scipy\linalg\basic.py", line 214, in solve _solve_check(n, info) File "C:\Program Files\Python38\lib\site-packages\scipy\linalg\basic.py", line 29, in _solve_check raise LinAlgError('Matrix is singular.') numpy.linalg.LinAlgError: Matrix is singular.
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-01
    • 1970-01-01
    • 2011-04-17
    • 2022-10-16
    • 2020-07-10
    • 1970-01-01
    相关资源
    最近更新 更多