Phobos(および/またはTango)の一連の定義済み例外タイプがありますか?

StackOverflow https://stackoverflow.com/questions/6069066

  •  07-09-2020
  •  | 
  •  

質問

D文書は少し面倒なようです、そして私はこの情報を公式サイトのどこでも見つけることができません。私はいくつかの一般的な例外タイプ(例えばNotfiniteNumberexception、FileIOException、そのようなファイル)を必要としています、これらはコアライブラリに存在しますか、それとも私自身を転がさなければならないでしょうか?

役に立ちましたか?

解決

それらのいくつかは存在し、それらのいくつかはしません。それらを見つけるための最良の戦略は、Dランタイム(およびPhobos)のテキスト: Exceptionをおすすめのまさにグローバル検索を探し、すべての既存の例外があるのかを確認することです。

最も可能性が高い、あなたはあなた自身の少なくともいくつかを展開する必要があります。

この検索で見つけたものは、次のとおりです。

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以外のクラスから継承する例外がある場合、またはそこに間隔が変わった場合は、このリストにはありません。)

他のヒント

例外階層はタンゴではかなりの考えを与えられ、一般的なセットはtango.core.exceptionから入手できます。

あなたの例外がより専じではありませんが、あなたがそれをそこに見つける可能性が低いですが、その意図はすべての例外が既存の例外へのサブクラスとして意味があるべきだということでした。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top