tipos propias propagacion personalizadas nuevas nuestras excepciones ejemplos crear como clase java exception

propias - propagacion de excepciones en java



¿Cómo crear un tipo de excepción personalizado en Java? (9)

Como puedes crear y lanzar excepciones, podría ser tan fácil como

if ( word.contains(" ") ) { throw new RuntimeException ( "Word contains one or more spaces" ) ; }

Si desea ser más formal, puede crear una clase de excepción

class SpaceyWordException extends RuntimeException { }

De cualquier forma, si usa RuntimeException , su nueva Exception quedará desmarcada.

Posible duplicado:
¿Cómo puedo escribir una excepción por mi cuenta?

Me gustaría crear una excepción personalizada en Java, ¿cómo lo hago?

... try{ ... String word=reader.readLine(); if(word.contains(" ")) /*create custom exception*/ } catch(){

Cuando creo mi excepción personalizada con throw new... , unreported exception...must be caught or declared to be thrown error unreported exception...must be caught or declared to be thrown


Como un programador cuidadoso arrojará a menudo una excepción para un IllegalArgumentException especial, vale la pena mencionar algunas excepciones de propósito general como IllegalArgumentException e IllegalStateException y UnsupportedOperationException . IllegalArgumentException es mi favorito:

throw new IllegalArgumentException("Word contains blank: " + word);


Debería poder crear una clase de excepción personalizada que amplíe la clase Exception , por ejemplo:

class WordContainsException extends Exception { // Parameterless Constructor public WordContainsException() {} // Constructor that accepts a message public WordContainsException(String message) { super(message); } }

Uso:

try { if(word.contains(" ")) { throw new WordContainsException(); } } catch(WordContainsException ex) { // Process message however you would like }


Excelentes respuestas sobre la creación de clases de excepciones personalizadas. Si tiene la intención de volver a utilizar la excepción en cuestión, entonces seguiría sus respuestas / consejos. Sin embargo, si solo necesita una excepción rápida lanzada con un mensaje, entonces puede usar la clase de excepción base en el lugar

String word=reader.readLine(); if(word.contains(" ")) /*create custom exeception*/ throw new Exception("My one time exception with some message!"); }


Necesita crear una clase que se extienda desde Exception . Debe tener un aspecto como este:

public class MyOwnException extends Exception { public MyOwnException () { } public MyOwnException (String message) { super (message); } public MyOwnException (Throwable cause) { super (cause); } public MyOwnException (String message, Throwable cause) { super (message, cause); } }

Su pregunta no especifica si esta nueva excepción debe marcarse o desmarcarse.

Como puede ver here , los dos tipos son diferentes:

  • Las excepciones marcadas están destinadas a marcar una situación problemática que debe ser manejada por el desarrollador que llama a su método. Debería ser posible recuperarse de tal excepción. Un buen ejemplo de esto es una FileNotFoundException . Esas excepciones son subclases de Exception .

  • Las excepciones no verificadas están destinadas a representar un error en su código, una situación inesperada de la que es posible que no pueda recuperarse. Una NullPointerException es un ejemplo clásico. Esas excepciones son subclases de RuntimeException

La excepción controlada debe ser manejada por el método de llamada, ya sea atrapándola y actuando en consecuencia, o lanzándola al método de llamada. Las excepciones no revisadas no están destinadas a ser atrapadas, aunque es posible hacerlo.


Puede crear su propia excepción heredando java.lang.Exception Here hay un ejemplo que puede ayudarlo a hacerlo.


Solo necesita crear una clase que amplíe Exception (para una excepción marcada) o cualquier subclase de Exception, o RuntimeException (para una excepción de tiempo de ejecución) o cualquier subclase de RuntimeException.

Luego, en tu código, solo usa

if (word.contains(" ")) throw new MyException("some message"); }

Lee el tutorial de Java. Esto es algo básico que todo desarrollador de Java debe saber: http://docs.oracle.com/javase/tutorial/essential/exceptions/


Tienes que definir tu excepción en otro lugar como una nueva clase

public class YourCustomException extends Exception{ //Required inherited methods here }

Entonces puedes lanzar y atrapar YourCustomException tanto como quieras.


Una excepción es una clase como cualquier otra clase, excepto que se extiende desde Exception . Entonces, si creas tu propia clase

public class MyCustomException extends Exception

puedes lanzar tal instancia con

throw new MyCustomException( ... ); //using whatever constructor params you decide to use

Y this podría ser una lectura interesante