- up: ðJava
- tags.
Java ã®äŸå€åŠçãŸãšã.
Java Exception: ææ³
try
äŸå€ãæãŸããããã®ç¯å² (ã³ã³ããã¹ã) ãäœã. {}ã§å²ãŸããéšåãã³ã³ããã¹ãã«ãªã.
catch
try{}ã§äœæããã³ã³ããã¹ãå ã§çºçããäŸå€ãæãŸããããšã«åŠçããå å®¹ãæžã. ãšã©ãŒãã°ãåããšã.
finally
æåŸã«ããªãã宿œãããåŠçãæžã.
äŸãã° IO ãã¡ã€ã«ã Open ããŠåŠçããŠããéäžã§ç°åžžãçºçãããšã, ãã¡ã€ã«ãéããåŠçãªã©.
try ãš catch ã®äŸ
try æã«ã¯æ£åžžç³»ã, catch æã«ã¯ç°åžžç³»ãæžã.
ããããããšã§,
æ£åžžç³»ã®ã³ãŒããšç°åžžç³»ã®ã³ãŒããæç¢ºã«åãã
ããšãã§ãã (ãããŠ, ç°åžžç³»ã¯åŸåãâŠ)
try {
hoge ()
} catch (FooException e1) { // äŸå€ã¯ã©ã¹ 倿°å
e1.printStackTrace ();
} catch (BarException e2) { // äŸå€ã¯ã©ã¹ 倿°å
e2.printStackTrace ();
} finally {
// ä»»æ
}
printStackTrace () ã¡ãœãããæžããš, äŸå€çºçæã®ã¹ã¿ãã¯ãã¬ãŒã¹ã衚瀺ã§ãã.
throw
throw æãã€ãããš, èªåã§äŸå€ãæããããšãã§ãã. åŒæ°ã«ã¡ãã»ãŒãžããããããšãã§ãã.
throw new HogeException ("ç§å¯ã®ã¡ãã»ãŒãž");
Java äŸå€ã¯ã©ã¹
Java ã§ã¯äŸå€ã¯ã¯ã©ã¹ãšããŠå®è£ ãã.
Throwable ã¯ã©ã¹ãç¶æ¿ããããã¡ã§, åäŸå€ã¯ã©ã¹ãå®çŸ©ãããŠãã.
- Throwable
- Error
- Exception
- RuntimeException
java.lang.Object. java.lang.Throwable. java.lang.Exception. java.io.IOException. java.io.FileNotFoundException.
以äžã®ãããªãµãã¯ã©ã¹ã§å°åé¡ãããŠãã.
- Throwable
- Error: åŠçã®ç¶ç¶äžå¯. èŽåœçãªãšã©ãŒ
- Exception: æ€æ»äŸå€, ã³ã³ãã€ã«æã«äŸå€åŠçã®å®è£
ã匷å¶ããã
- RuntimeException: å®è¡æäŸå€. ã³ã³ãã€ã«æã«äŸå€åŠçã®å®è£ ã匷å¶ãããªã
Errorã¯ã©ã¹
ããã°ã©ã ã§ã¯ã©ãããããšãã§ããªãäºæ ãèµ·ããéã«çºç.
- ã¡ã¢ãªäžè¶³ã®å Žå: OutOfMemoryError
- ã¹ã¿ãã¯é åããªãŒããŒãããŒããå Žå: StackOverflowError
- ãã¡ã€ã«ãå£ããŠããå Žå: ClassFormatError
Exception ã¯ã©ã¹(æ€æ»äŸå€/ãã§ãã¯äŸå€)
try-catchãå¿ èŠãªäŸå€ã§å®è£ ããªããšã³ã³ãã€ã«ãšã©ãŒã«ãªã. Eclipseãšãã®IDEã ãšãããªããºã©ããšä¿ç®¡ããããèµ€ããªã£ããããã¢ã¬.
- å ¥åºåé¢ä¿ã®äŸå€: IOException
- DBé¢ä¿ã®äŸå€: SQLExcetion
RuntimeExceptionã¯ã©ã¹
Throwable
Throwableã¯ã©ã¹ã®ã¡ãœãããŸãšã.
äŸå€ã¯ã©ã¹ã¯Throwableã¯ã©ã¹ãç¶æ¿ããŠãã, ããã§å®çŸ©ãããŠããã¡ãœããã§æ å ±ååŸã§ãã.
- getMesssage(): ãšã©ãŒã¡ãã»ãŒãžãååŸ
- getCause(): å®éã«çºçããäŸå€ãååŸ
- printStackTrace(): ã¹ã¿ãã¯ãã¬ãŒã¹è¡šç€º
Java äŸå€ã®ãããã¯
ç¬èªå®çŸ©ã®äŸå€
Java ã®äŸå€ã¯ã¯ã©ã¹ãªã®ã§, äžã®ã¯ã©ã¹ãç¶æ¿ããã¯ã©ã¹ãå®çŸ©ããããšã§, ç¬èªäŸå€ãäœæã§ãã.
Error ãš RuntimeException ã¯, Java ä»®æ³ãã·ã³ãéç¥ããŠããç¹å¥ãªäŸå€ãªã®ã§, äžè¬ã®ããã°ã©ãã¯, 以äžã®ã©ã¡ããã§å®çŸ©.
- Java API ã§çšæãããŠãã Exception ã®ãµãã¯ã©ã¹ã䜿ã
- java.lang.Exception Exception ã®ãµãã¯ã©ã¹ãèªåã§å®çŸ©ãã
class MyException extends Exception {}
ãããªé¢šã«ããã°, äžäœã®ã³ã³ããã¹ãã«ãšã©ãŒã³ãŒããæž¡ãããšãã§ãã. catch ãããã¯ã§çºçãããšã©ãŒã«ãã£ãŠ, åŠçãåå²ã§ãã. ããã, åå²ãããªãã°, äŸå€ã¯ã©ã¹ãå®çŸ©ããæ¹ããšã¬ã¬ã³ãã .
import java.lang.Exception;
public class MyErrorSample {
public static void main (String args[]) {
try {
throw new MyException (5);
}
catch (MyException e) {
e.printStackTrace ();
System.out.println ("ErrorCode = " + e.getCode ());
}
}
}
class MyException extends Exception {
int errorCode;
MyException (int errorCode) {
this.errorCode = errorCode;
}
int getCode () {
return errorCode;
}
}
Java ã®æšæºçãªäŸå€ã¯ã©ã¹
äŸå€åŠçãããããšããªã«ã throw ããã°ããã®ã. Effective Java ã«ã¯ç¬èªå®çŸ©ã®äŸå€ãããæšæºäŸå€ãå©çšããããã«ãšæžããŠãã.
- ã¿ããªç¥ã£ãŠãããã
- ããã©ãŒãã³ã¹ã軜ããªããã
æšæºçã«å©çšããã Java ã®äŸå€ã以äžã«ãŸãšããŠã¿ã.
Definition | Description | Example |
---|---|---|
java.lang.IllegalArgumentException | äžé©åãªåŒæ° | ãã©ã¡ãŒã¿ãšã©ãŒ |
java.lang.IllegalStateException | äžæ£ãªç¶æ | æªåæåã§åŒã³åºã |
java.lang.NullPointerException. | Null ã¢ã¯ã»ã¹ | |
java.lang.IndexOutOfBoundsException | ç¯å²å€ | é åã® Index ãªãŒã |
java.util.ConcurrentMdificationException | ãã«ãã¹ã¬ããã¢ã¯ã»ã¹ | 䞊è¡åŠçæŒã |
java.lang.UnsupportedOperationException | æªãµããŒãæ©èœ | æªãµããŒããªã®ã«ã¡ãœãããåŒã°ãã |
èªåã§å©çšããªããŸã§ã, ããã¿ãããäŸå€ã以äžã«ãŸãšãŸã£ãŠãã. ãããã°ã®å.
- ã¯ã©ã¹ java.lang.Exception ã®äœ¿çš (Connected Device Configuration (CDC), ããŒãžã§ã³ 1.1.2)
- Java äŸå€ã¡ã¢ (Hishidamaâs Java Exception Memo)
Javaéä¿¡ã¿ã€ã ã¢ãŠããŸãšã
Exceptionãšãã®ã¡ãã»ãŒãžãåéããŠãã.
java.io.EOFException: SSL peer shut down incorrectly
éä¿¡çžæããæ¥ç¶ãåããã.
ãã®ã±ãŒã¹ã§ã¯æ¥ç¶åŠçãé·ãã£ããããšã.
ããæžããšçŽã?
System.setProperty("https.protocols", "TLSv1,TLSv1.1,TLSv1.2");
java.net.SocketException: Broken pipe
to. Broken pipe
java.net.ConnectException
æ¥ç¶æåŠãšã©ãŒ.
ããã¯ã¯ã©ã€ã¢ã³ããããµãŒããžã®éä¿¡ãå±ããŠããªã. åå ã¯ãµãŒãããã®éäžã®éä¿¡çµè·¯. pingãããããªãã©ã€ããŠã¿ãŠå®éšããŠåãåãã.
ConnectException (Java Platform SE 8)
è² è·ã«ãã£ãŠå±ããªããªãã°ã¿ã€ã ã¢ãŠãå€ã調æŽããŠã¿ã.
References
- ðClojure Exception: äŸå€
- Throwableã«ã€ããŠæ¬æ°åºããŠèããŠã¿ã - éœå
ãã€ã¹ã± IT-PRESS
- 2008ã®å€ãèšäºã ãã©æªã ã«(2022)ç¥èã¯çããŠããããèšäº.