Pregunta

El D de la documentación parece ser un poco desordenado, y no soy capaz de encontrar esta información en cualquier lugar en el sitio oficial.Yo estoy necesitando algunos tipos de excepción (por ejemplo,NotFiniteNumberException, FileIOException, tipos como ese), estos existen en el núcleo de las bibliotecas, o tengo que rollo de estos de mí mismo?

¿Fue útil?

Solución

Algunos de ellos existen, algunos de ellos no.La mejor estrategia para encontrarlos es sólo hacer una búsqueda global busque el texto : Exception en la D de tiempo de ejecución (y Fobos), y viendo lo que todos los preexistentes son las excepciones.

Lo más probable, sin embargo, usted tiene que rodar al menos algunos de sus propios.

Lo que he encontrado a través de esta búsqueda fueron los siguientes:

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

(Por supuesto, si hay excepciones que heredar de otras clases de Exception, o si no espaciamiento era extraño, entonces, que no está en esta lista).

Otros consejos

La jerarquía de excepción se le dio un poco de pensamiento en Tango, y se dispone de un conjunto general en Tango.core.Exception.

Cuanto más especializada es su excepción, menos probable es que lo encuentre allí, pero la intención fue que todas las excepciones deben tener sentido como subclases a las excepciones existentes.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top