📅  最后修改于: 2023-12-03 15:00:33.740000             🧑  作者: Mango
在D编程中,异常处理是一种处理程序错误和异常的方式。当程序出现异常时,异常处理会捕获并处理异常,以便程序可以正常执行。
在D编程中,异常处理通过try-catch
块来实现。try
块包含可能引发异常的代码,catch
块用于处理异常。
以下是一个简单的示例:
void main()
{
try
{
int x = 0;
int y = 10 / x; // 会引发除零异常
}
catch (Throwable t)
{
writeln("An exception occurred: ", t.msg);
}
}
在上面的示例中,try
块中的代码会引发除零异常。catch
块会捕获该异常,并输出异常信息。
在D编程中,所有异常都是派生自Throwable
类的,Throwable
类具有以下属性和方法:
string msg
:异常消息string toString()
:返回异常消息以下是一个抛出自定义异常的示例:
class MyException : Throwable
{
this(string msg)
{
super(msg);
}
}
void main()
{
try
{
throw new MyException("Something went wrong");
}
catch (MyException e)
{
writeln("An exception occurred: ", e.msg);
}
}
在上面的示例中,我们创建了一个MyException
类,并使用throw
语句抛出了该异常。catch
块捕获该异常,并输出异常消息。
在try-catch
块中,还可以添加一个可选的finally
块。finally
块中的代码会在try-catch
块执行完毕后始终执行,无论是否发生异常。
以下是一个使用finally
块的示例:
void main()
{
try
{
int x = 0;
int y = 10 / x; // 会引发除零异常
}
catch (Throwable t)
{
writeln("An exception occurred: ", t.msg);
}
finally
{
writeln("Execution finished");
}
}
在上面的示例中,finally
块中的代码会在try-catch
块执行完毕后执行,无论是否发生异常。
异常处理是一种处理程序错误和异常的方式,在D编程中使用try-catch
块来实现。异常可以派生自Throwable
类,可以添加可选的finally
块来执行清理操作。