我有一个方法@JsonTypeName("user")
@JsonTypeInfo(include= JsonTypeInfo.As.WRAPPER_OBJECT,use= JsonTypeInfo.Id.NAME)
public class User {
...
}
可以提升get_font
。我想检查是否引发了警告,如果是这样的话,我想运行一段代码。
我目前的解决方案是
DefaultFontWarning
这会将def set_font(self):
with warnings.catch_warnings():
warnings.filterwarnings("error")
try:
self.font = get_font(self.path, self.size)
except DefaultFontWarning:
self.is_default = True
附加到is_default
,但它也会使警告静音,以便用户无法看到它。
如何检查警告是否已引发但仍未将其变为异常并输出?
答案 0 :(得分:1)
提升Warning
(或其他类型;例如UserWarning
),但保留原始追溯。
def set_font(self):
with warnings.catch_warnings():
try:
self.font = get_font(self.path, self.size)
except DefaultFontWarning as e:
raise Warning(*e.args).with_traceback(e.__traceback__) from None
使用from None
将有效摆脱During handling ...
消息。您可以通过替换'bad font'
:
*e.args
raise Warning('bad font').with_traceback(e.__traceback__) from None