D のドキュメントは少しごちゃごちゃしているようで、公式サイトのどこにもこの情報を見つけることができません。いくつかの一般的な例外タイプ (NotFiniteNumberException、FileIOException などのタイプ) が必要ですが、これらはコア ライブラリに存在しますか? それとも自分でロールバックする必要がありますか?
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 に答える