You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python中无法捕获异常并抛出错误的问题排查

问题原因与修正方案

你的代码没捕获到异常的核心原因是捕获的异常类型不匹配:

  • 当用float()尝试转换像'a'这种无法解析为数字的字符串时,Python抛出的是ValueError,而非你代码里指定的TypeError。
  • TypeError通常是传入的参数类型完全不兼容时才会触发,比如给float()传列表、字典这类根本无法进行数值转换的对象。

修正后的代码

把捕获的异常类型改成ValueError即可:

initial_cash = 'a'
try:
    initial_cash = float(initial_cash)
except ValueError:
    raise TypeError("Initial cash amount should be float or int")

如果想同时处理可能出现的TypeError(比如传入非字符串/数字类型的情况),也可以同时捕获两种异常:

initial_cash = 'a'
try:
    initial_cash = float(initial_cash)
except (TypeError, ValueError):
    raise TypeError("Initial cash amount should be float or int")

内容的提问来源于stack exchange,提问作者Lopez

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 02:25:16