在D语言中,try-catch语句可以捕获异常并打印错误信息。以下是几个完整可以运行的例子:

例子1:捕获标准异常并输出错误信息

import std.exception;

void main()
{
    try
    {
        int[] arr;
        arr[0] = 1; // 数组越界,会抛出 RangeError 异常
    }
    catch (RangeError e)
    {
        writeln("错误信息:", e.msg);
    }
}

输出结果:

错误信息:Range violation

例子2:自定义异常类并抛出

class MyException : Exception
{
    this(string msg)
    {
        super(msg);
    }
}

void main()
{
    try
    {
        throw new MyException("自定义异常");
    }
    catch (MyException e)
    {
        writeln("错误信息:", e.msg);
    }
}

输出结果:

错误信息:自定义异常

例子3:捕获任意异常并输出错误信息

void main()
{
    try
    {
        int a = 1 / 0; // 除以0,会抛出 DivideError 异常
    }
    catch (Throwable e)
    {
        writeln("错误信息:", e.msg);
    }
}

输出结果:

错误信息:integer division by zero

总结:

  • D语言的try-catch语句可以捕获任意类型的异常,包括标准异常和自定义异常。
  • 异常类需要继承自Exception类或其子类,在构造函数中传递错误提示信息。
  • 捕获异常时可以使用catch关键字并指定异常类型,也可以使用catch(Throwable)捕获任意类型异常

原文地址: https://www.cveoy.top/t/topic/fdQc 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录