D 文档似乎有点乱,我在官方网站上的任何地方都找不到这些信息。我需要一些常见的异常类型(例如 NotFiniteNumberException、FileIOException、类似的类型),这些是否存在于核心库中,还是我必须自己滚动这些?
问问题
250 次
2 回答
7
其中一些存在,一些不存在。找到它们的最佳策略是: Exception
在 D 运行时(和 Phobos)中进行全局搜索查找文本,并查看所有预先存在的异常是什么。
不过,最有可能的是,您必须至少推出一些自己的产品。
我通过这次搜索发现了以下内容:
druntime\src\core\demangle.d(72):static class ParseException : Exception
druntime\src\core\demangle.d(81):static class OverflowException : Exception
druntime\src\core\exception.d(297): class UnicodeException : Exception
druntime\src\core\thread.d(34): class ThreadException : Exception
druntime\src\core\thread.d(51): class FiberException : Exception
druntime\src\core\time.d(2703): class TimeException : Exception
druntime\src\core\sync\exception.d(21): class SyncException : Exception
phobos\std\boxer.d(511): class UnboxException : Exception
phobos\std\concurrency.d(198): class MessageMismatch : Exception
phobos\std\concurrency.d(210): class OwnerTerminated : Exception
phobos\std\concurrency.d(225): class LinkTerminated : Exception
phobos\std\concurrency.d(240): class PriorityMessageException: Exception
phobos\std\concurrency.d(255): class MailboxFull : Exception
phobos\std\conv.d(33): class ConvException : Exception
phobos\std\demangle.d(26): private class MangleException : Exception
phobos\std\encoding.d(2056): class EncodingException : Exception
phobos\std\exception.d(792): class ErrnoException : Exception
phobos\std\file.d(183): class FileException : Exception
phobos\std\json.d(418): class JSONException : Exception
phobos\std\regexp.d(161): class RegExpException : Exception
phobos\std\socket.d(121): class SocketException: Exception
phobos\std\socket.d(455): class HostException: Exception
phobos\std\socket.d(670): class AddressException: Exception
phobos\std\stdio.d(2111): class StdioException : Exception
phobos\std\stream.d(44): class StreamException: Exception
phobos\std\utf.d(45): class UtfException : Exception
phobos\std\variant.d(1153): static class VariantException : Exception
phobos\std\xml.d(2726): class XMLException : Exception
phobos\std\zip.d(44): class ZipException : Exception
phobos\std\zlib.d(42): class ZlibException : Exception
phobos\std\windows\registry.d(75): class Win32Exception : Exception
(当然,如果有从 以外的类继承的异常Exception
,或者如果间距很奇怪,那么它们不在此列表中。)
于 2011-05-20T08:03:48.120 回答
3
Tango 中对异常层次结构进行了相当多的考虑,并且可以从 tango.core.Exception 获得一个通用集合。
您的异常越专业,您在那里找到它的可能性就越小,但其目的是所有异常都应该作为现有异常的子类有意义。
于 2011-05-20T10:59:25.937 回答