(1)Error类和Exception类都继承自Throwable类。
Error的继承关系:
java.lang.Object-> java.lang.Throwable-> java.lang.Error
Exception的继承关系:
java.lang.Object-> java.lang.Throwable-> java.lang.Exception
(2)二者的不同之处:
Exception:
1.可以是可被控制(checked) 或不可控制的(unchecked)
2.表示一个由程序员导致的错误
3.应该在应用程序级被处理
Error:
1.总是不可控制的(unchecked)
2.经常用来用于表示系统错误或低层资源的错误
3.如何可能的话,应该在系统级被捕捉
(3)Java 中异常类的继承关系图:
Throwable Class Hierarchy
- class java.lang.Throwable (implements java.io.Serializable)
- class java.lang.Error
- class java.awt.AWTError
- class java.lang.LinkageError
- class java.lang.ClassCircularityError
- class java.lang.ClassFormatError
- class java.lang.ExceptionInInitializerError
- class java.lang.IncompatibleClassChangeError
- class java.lang.AbstractMethodError
- class java.lang.IllegalAccessError
- class java.lang.InstantiationError
- class java.lang.NoSuchFieldError
- class java.lang.NoSuchMethodError
- class java.lang.NoClassDefFoundError
- class java.lang.UnsatisfiedLinkError
- class java.lang.VerifyError
- class java.lang.ThreadDeath
- class java.lang.VirtualMachineError
- class java.lang.InternalError
- class java.lang.OutOfMemoryError
- class java.lang.StackOverflowError
- class java.lang.UnknownError
- class java.lang.Exception
- class java.awt.AWTException
- class java.security.acl.AclNotFoundException
- class java.rmi.AlreadyBoundException
- class java.lang.ClassNotFoundException
- class java.lang.CloneNotSupportedException
- class java.rmi.server.ServerCloneException
- class java.util.zip.DataFormatException
- class java.security.DigestException
- class java.io.IOException
- class java.io.CharConversionException
- class java.io.EOFException
- class java.io.FileNotFoundException
- class java.io.InterruptedIOException
- class java.net.MalformedURLException
- class java.io.ObjectStreamException
- class java.io.InvalidClassException
- class java.io.InvalidObjectException
- class java.io.NotActiveException
- class java.io.NotSerializableException
- class java.io.OptionalDataException
- class java.io.StreamCorruptedException
- class java.io.WriteAbortedException
- class java.net.ProtocolException
- class java.rmi.RemoteException
- class java.rmi.AccessException
- class java.rmi.ConnectException
- class java.rmi.ConnectIOException
- class java.rmi.server.ExportException
- class java.rmi.server.SocketSecurityException
- class java.rmi.MarshalException
- class java.rmi.NoSuchObjectException
- class java.rmi.ServerError
- class java.rmi.ServerException
- class java.rmi.ServerRuntimeException
- class java.rmi.server.SkeletonMismatchException
- class java.rmi.server.SkeletonNotFoundException
- class java.rmi.StubNotFoundException
- class java.rmi.UnexpectedException
- class java.rmi.UnknownHostException
- class java.rmi.UnmarshalException
- class java.net.SocketException
- class java.net.BindException
- class java.net.ConnectException
- class java.net.NoRouteToHostException
- class java.io.SyncFailedException
- class java.io.UTFDataFormatException
- class java.net.UnknownHostException
- class java.net.UnknownServiceException
- class java.io.UnsupportedEncodingException
- class java.util.zip.ZipException
- class java.lang.IllegalAccessException
- class java.lang.InstantiationException
- class java.lang.InterruptedException
- class java.beans.IntrospectionException
- class java.lang.reflect.InvocationTargetException
- class java.security.KeyException
- class java.security.InvalidKeyException
- class java.security.KeyManagementException
- class java.security.acl.LastOwnerException
- class java.security.NoSuchAlgorithmException
- class java.lang.NoSuchFieldException
- class java.lang.NoSuchMethodException
- class java.security.NoSuchProviderException
- class java.rmi.NotBoundException
- class java.security.acl.NotOwnerException
- class java.text.ParseException
- class java.beans.PropertyVetoException
- class java.lang.RuntimeException
- class java.lang.ArithmeticException
- class java.lang.ArrayStoreException
- class java.lang.ClassCastException
- class java.util.EmptyStackException
- class java.lang.IllegalArgumentException
- class java.lang.IllegalThreadStateException
- class java.security.InvalidParameterException
- class java.lang.NumberFormatException
- class java.lang.IllegalMonitorStateException
- class java.lang.IllegalStateException
- class java.awt.IllegalComponentStateException
- class java.lang.IndexOutOfBoundsException
- class java.lang.ArrayIndexOutOfBoundsException
- class java.lang.StringIndexOutOfBoundsException
- class java.util.MissingResourceException
- class java.lang.NegativeArraySizeException
- class java.util.NoSuchElementException
- class java.lang.NullPointerException
- class java.security.ProviderException
- class java.lang.SecurityException
- class java.rmi.RMISecurityException
- class java.sql.SQLException
- class java.sql.SQLWarning
- class java.sql.DataTruncation
- class java.sql.SQLWarning
- class java.rmi.server.ServerNotActiveException
- class java.security.SignatureException
- class java.util.TooManyListenersException
- class java.awt.datatransfer.UnsupportedFlavorException
- class java.lang.Error