Detailed explanation of java exception handling examples
This article mainly introduces the detailed introduction and examples of java exception handling. This article summarizes the knowledge level of java exceptions. Friends in need can refer to the
Java exception hierarchy
Exception exception
The difference between RuntimeException and non-RuntimeException exception:
非RuntimeException(检查异常):在程序中必须使用try…catch进行处理,否则程序无法编译。 RuntimeException:可以不使用try…catch进行处理,但是如果有异常产生,则异常将由JVM进行处理。 比如:我们从来没有人去处理过NullPointerException异常,它就是运行时异常,并且这种异常还是最常见的异常之一。 出现运行时异常后,系统会把异常一直往上层抛,一直遇到处理代码。如果没有处理块,到最上层, 如果是多线程就由Thread.run()抛出,如果是单线程就被main()抛出。抛出之后,如果是线程,这个线程也就退出了。 如果是主程序抛出的异常,那么这整个程序也就退出了。
The parent classes of the Error class and the Exception class are both throwable classes. The difference between them is:
Error类一般是指与虚拟机相关的问题,如系统崩溃,虚拟机错误,内存空间不足,方法调用栈溢等。 对于这类错误的导致的应用程序中断,仅靠程序本身无法恢复和和预防,遇到这样的错误,建议让程序终止。 Exception类表示程序可以处理的异常,可以捕获且可能恢复。遇到这类异常,应该尽可能处理异常, 使程序恢复运行,而不应该随意终止异常。
RuntimeException
NullPointException
Generally, Java.lang.NullPointerException is reported for the following reasons:
1. The string variable is not initialized;
2. The object is not initialized with a specific class;
The NullPointException code is as follows:
package TestNullPointException; public class TestNullPointException { public static void main (String[] args) { String str = null; try { if (str.equals(null)) { System.out.println("true"); } else { System.out.println("false"); } } catch (NullPointException e) { e.printStackTrace(); } } }
Output:
java.lang.NullPointerException at TestNullPointException.TestNullPointException.main(TestNullPointException.java:6)
ArrayIndexOutOfBoundsException exception
Array subscript out-of-bounds exception, when the referenced index value exceeds the length of the array, This exception will occur.
ArrayIndexOutOfBoundsException code is as follows:
package TestArrayIndexOutOfBoundsException; public class TestArrayIndexOutOfBoundsException { public static void main (String[] args) { Integer[] array = new Integer[10]; try { Integer temp = array[10]; } catch (ArrayIndexOutOfBoundsException e) { e.printStackTrace(); } } }
Output:
java.lang.ArrayIndexOutOfBoundsException: 10 at TestArrayIndexOutOfBoundsException.TestArrayIndexOutOfBoundsException.main(TestArrayIndexOutOfBoundsException.java:6)
ArithmeticException
ArithmeticException is thrown when an abnormal operation condition occurs this exception.
ArithmeticException code is as follows:
/** * ArithmeticException */ packet TestArithmeticException; public class TestArithmeticException { public static void main(String[] args) { Integer temp = 1; try { System.out.println(temp/0); } catch (ArithmeticException e) { e.printStackTrace(); } } }
Output:
java.lang.ArithmeticException: / by zero at TestArithmeticException.TestArithmeticException.main(TestArithmeticException.java:6)
ArrayStoreException
When you try to store an object of the wrong type into a Exception thrown when array of objects.
ArrayStoreException code is as follows:
/** * ArrayStoreException */ packet TestArrayStoreException; public class TestArrayStoreException { public static void main(String[] args) { Object array = new Integer[10]; try { array[0] = "123"; } catch (ArrayStoreException e) { e.printStackTrace(); } } }
Output:
Exception in thread "main" java.lang.ArrayStoreException: java.lang.String at TestArrayStoreException.TestArrayStoreException.main(TestArrayStoreException.java:6)
NumberFormatException
Inherits IllegalArgumentException and occurs when a string is converted to a number.
NumberFormatException code is as follows:
/** * NumberFormatException */ package test; public class ExceptionTest { public static void main(String[] args) { String s = "q12"; Integer i = Integer.parseInt(s); } }
Output:
Exception in thread "main" java.lang.NumberFormatException: For input string: "q12" at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65) at java.lang.Integer.parseInt(Integer.java:580) at java.lang.Integer.parseInt(Integer.java:615) at test.ExceptionTest.main(ExceptionTest.java:8)
ClassCastException
Type conversion error, usually when performing forced type conversion error.
ClassCastException code is as follows:
/** * ClassCastException 父类赋值给子类,向下转型 */ package test; public class ExceptionTest { public static void main(String[] args) { Object obj=new Object(); Integer s=(Integer)obj; } }
Output:
Exception in thread "main" java.lang.ClassCastException: java.lang.Object cannot be cast to java.lang.Integer at test.ExceptionTest.main(ExceptionTest.java:5)
The above is the detailed content of Detailed explanation of java exception handling examples. For more information, please follow other related articles on the PHP Chinese website!

Discussion on the reasons why JavaScript cannot obtain user computer hardware information In daily programming, many developers will be curious about why JavaScript cannot be directly obtained...

RuoYi framework circular dependency problem troubleshooting and solving the problem of circular dependency when using RuoYi framework for development, we often encounter circular dependency problems, which often leads to the program...

About SpringCloudAlibaba microservices modular development using SpringCloud...

Questions about a curve integral This article will answer a curve integral question. The questioner had a question about the standard answer to a sample question...

In SpringBoot, use Redis to cache OAuth2Authorization object. In SpringBoot application, use SpringSecurityOAuth2AuthorizationServer...

JDBC...

Why can't the main class be found after copying and pasting the package in IDEA? Using IntelliJIDEA...

State synchronization between Java multi-interface calls: How to ensure that interface A is called after it is executed? In Java development, you often encounter multiple calls...


Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

Atom editor mac version download
The most popular open source editor

SublimeText3 Linux new version
SublimeText3 Linux latest version

SublimeText3 Mac version
God-level code editing software (SublimeText3)

SublimeText3 English version
Recommended: Win version, supports code prompts!

SAP NetWeaver Server Adapter for Eclipse
Integrate Eclipse with SAP NetWeaver application server.