JAVA受检异常和非受检异常举例

受检异常和非受检异常(运行时异常)举例

RuntimeException(即非受检异常):

  RuntimeException在默认情况下会得到自动处理,所以通常用不着捕获RuntimeExceptionRuntimeException是那些可能在Java虚拟机正常运行期间抛出的异常的超类,可能在执行方法期间抛出但未被捕获的RuntimeException的任何子类都无需在throws子句中进行声明。

  java.lang.ArithmeticException

  java.lang.ArrayStoreExcetpion

  java.lang.ClassCastException

  java.lang.EnumConstantNotPresentException

  java.lang.IllegalArgumentException

  java.lang.IllegalThreadStateException

  java.lang.NumberFormatException

  java.lang.IllegalMonitorStateException

  java.lang.IllegalStateException

  java.lang.IndexOutOfBoundsException

  java.lang.ArrayIndexOutOfBoundsException

  java.lang.StringIndexOutOfBoundsException

  java.lang.NegativeArraySizeException

  java.lang.NullPointerException

  java.lang.SecurityException

  java.lang.TypeNotPresentException

  java.lang.UnsupprotedOperationException

 

受检异常:

  除了RuntimeException以外的异常,都属于CheckedException,它们都在java.lang库内部定义。Java编译器要求程序必须捕获或声明抛出这种异常。一个方法必须通过throws语句在方法的声明部分说明它可能抛出但并未捕获的所有CheckedException

  java.lang.ClassNotFoundException

  java.io.FileNotFoundException

  java.io.IOException

  java.sql.SQLException

  java.net.SocketException

  java.lang.CloneNotSupportedException

  java.lang.IllegalAccessException

  java.lang.InterruptedException

  java.lang.NoSuchFieldException

  java.lang.NoSuchMetodException

 

(附)Java API中Exception的直接已知子类:
AclNotFoundException
ActivationException
AlreadyBoundException
ApplicationException
AWTException
BackingStoreException
BadAttributeValueExpException
BadBinaryOpValueExpException
BadLocationException
BadStringOperationException
BrokenBarrierException
CertificateException
ClassNotFoundException
CloneNotSupportedException
DataFormatException
DatatypeConfigurationException
DestroyFailedException
ExecutionException
ExpandVetoException
FontFormatException
GeneralSecurityException
GSSException
IllegalAccessException
IllegalClassFormatException
InstantiationException
InterruptedException
IntrospectionException
InvalidApplicationException
InvalidMidiDataException
InvalidPreferencesFormatException
InvalidTargetObjectTypeException
InvocationTargetException
IOException
JAXBException
JMException
KeySelectorException
LastOwnerException
LineUnavailableException
MarshalException
MidiUnavailableException
MimeTypeParseException
MimeTypeParseException
NamingException
NoninvertibleTransformException
NoSuchFieldException
NoSuchMethodException
NotBoundException
NotOwnerException
ParseException
ParserConfigurationException
PrinterException
PrintException
PrivilegedActionException
PropertyVetoException
RefreshFailedException
RemarshalException
RuntimeException
SAXException
ScriptException
ServerNotActiveException
SOAPException
SQLException
TimeoutException
TooManyListenersException
TransformerException
TransformException
UnmodifiableClassException
UnsupportedAudioFileException
UnsupportedCallbackException
UnsupportedFlavorException
UnsupportedLookAndFeelException
URIReferenceException
URISyntaxException
UserException
XAException
XMLParseException
XMLSignatureException
XMLStreamException
XPathException

转载于:https://www.cnblogs.com/qubo520/p/7151701.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java 中的异常分为两种类受检异常(checked exceptions)和未受检异常(unchecked exceptions)。 受检异常是指在代码编译期间就需要处理的异常,必须在方法签名中声明并处理,否则代码将无法通过编译。常见受检异常包括 `IOException`、`SQLException`、`ClassNotFoundException` 等。当代码可能抛出受检异常时,可以使用 `try...catch` 块或 `throws` 关键字来处理异常。示例代码如下: ``` public void readFile(String fileName) throws IOException { BufferedReader br = null; try { br = new BufferedReader(new FileReader(fileName)); String line; while ((line = br.readLine()) != null) { System.out.println(line); } } catch (IOException e) { System.err.println("读取文件出错:" + e.getMessage()); throw e; } finally { if (br != null) { try { br.close(); } catch (IOException e) { System.err.println("关闭文件出错:" + e.getMessage()); } } } } ``` 在上面的代码中,`readFile` 方法声明了 `IOException` 异常,表示该方法可能抛出 `IOException` 异常。在方法内部,我们使用 `try...catch` 块来捕获可能抛出的 `IOException` 异常,并在 `catch` 块中打印错误信息,并将异常重新抛出。最后,我们在 `finally` 块中关闭文件流,并在可能出现的异常情况下打印错误信息。 未受检异常是指在运行时才能发现的异常,不需要在方法签名中声明,也不需要进行处理。常见的未受检异常包括 `NullPointerException`、`ArrayIndexOutOfBoundsException`、`ClassCastException` 等。当代码可能抛出未受检异常时,可以使用 `try...catch` 块来捕获异常并进行处理,但是这样做并不是必须的。示例代码如下: ``` public int divide(int a, int b) { if (b == 0) { throw new IllegalArgumentException("除数不能为零"); } return a / b; } ``` 在上面的代码中,`divide` 方法可能抛出一个 `IllegalArgumentException` 异常,表示除数不能为零。由于 `IllegalArgumentException` 是一个未受检异常,我们不需要在方法签名中声明该异常,也不需要使用 `try...catch` 块来处理异常。当方法抛出该异常时,调用该方法的代码可以选择捕获异常并进行处理,或者将异常继续抛出。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值