d的异常
原文
用StdioException
抛为何不能不抛
?
nothrow void hello() {
try {
writeln("Hello, World!")
} catch (StdioException) {}
}
这却可以?
nothrow void hello() {
try {
writeln("Hello, World!")
} catch (Exception) {}
}
d
不验证异常,无法验证你调用的函数是否抛
,要抓
异常来满足
不抛.
函数抛异常
,则不可能不抛
.
函数属性推导.
import std.stdio;
class MyException : Exception {
this(string msg) { super(msg); }
}
void throwing(int x) {
if(x > 2) throw new MyException("Derp!");
else writeln(x);
}
void noThrowing() nothrow {
try {
throwing(10);
}//错误,throwing不是`不抛`函数.
catch(MyException me) {}
}
void main()
{
noThrowing();
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现