barriers / 阅读 / 详情

请问在java语言异常处理中的getCause()方法的用法?

2023-07-17 22:16:01
共1条回复
里论外几

getCause

public

Throwable

getCause()返回此

throwable

cause;如果

cause

不存在或未知,则返回

null。(该

Cause

是导致抛出此

throwable

的throwable。)

此实现返回由一个需要

Throwable

的构造方法提供的

cause,或者在创建之后通过

initCause(Throwable)

方法进行设置的

cause。虽然通常不需要重写此方法,但子类可以重写它,以返回一个通过某些其他方式设置的

cause。这适用于在异常链(异常嵌套)机制被加入到

Throwable

之前存在“遗留

Throwable

链机制”的情况。注意,不必

重写任何

PrintStackTrace

方法,所有方法都调用

getCause

方法来确定

throwable

cause。

返回:

throwable

cause,如果

cause

不存在或是未知的,则返回

null。

相关推荐

throwable和Exception的区别(详细一点)

看下API:throwable:所有已实现的接口: Serializable直接已知子类: Error, ExceptionThrowable 类是 Java 语言中所有错误或异常的超类。只有当对象是此类(或其子类之一)的实例时,才能通过 Java 虚拟机或者 Java throw 语句抛出。类似地,只有此类或其子类之一才可以是 catch 子句中的参数类型。两个子类的实例,Error 和 Exception,通常用于指示发生了异常情况。通常,这些实例是在异常情况的上下文中新近创建的,因此包含了相关的信息(比如堆栈跟踪数据)。 Exception 类及其子类是 Throwable 的一种形式,它指出了合理的应用程序想要捕获的条件
2023-07-17 16:44:432

catch,Throwable或Exception,有什么区别??

catch n.捕捉,陷阱,捕获物 v.抓住;赶上,了解,感染 Throwable 可投掷的 exception n.例外 Please read: Java语言要求java程序中(无论是谁写的代码)所有抛出(throw)的异常都必须是从Throwable派生而来.当然,实际的Java编程中,由于JDK平台已经为我们设计好了非常丰富和完整的异常对象分类模型.因此,java程序员一般是不需要再重新定义自己的异常对象.而且即便是需要扩展自定义的异常对象,也往往会从Exception派生而来.所以,对于java程序员而言,它一般只需要在它的顶级函数中catch(Exception ex)就可以捕获出所有的异常对象.所有异常对象的根基类是 Throwable ,Throwable从Object直接继承而来(这是java系统所强制要求的),并且它实现了 Serializable接口(这为所有的异常对象都能够轻松跨越Java组件系统做好了最充分的物质准备).从Throwable直接派生出的异常类有Exception和Error .Exception是java程序员所最熟悉的,它一般代表了真正实际意义上的异常对象的根基类.也即是说,Exception 和从它派生而来的所有异常都是应用程序能够catch到的,并且可以进行异常错误恢复处理的异常类型.而Error则表示Java系统中出现了一个非常严重的异常错误,并且这个错误可能是应用程序所不能恢复的,例如LinkageError ,或 ThreadDeath 等.,1,catch,Throwable或Exception,有什么区别? I think I was asking about the java-Programming language instead of English,okay?
2023-07-17 16:45:021

Throwable的使用

使用Throwable一个很大的好处在于,他能保存他被实例化的方法的堆栈信息,通过方法: 可以将他和他的cause Throwable和他的cause的cause...( 递归 ) 的堆栈信息都打印出来。 而例如我们要将一个Throwable对象的堆栈信息不仅仅是输出到控制台,还要保存到本地日志或者发送到服务器呢?那么就要将Throwable的堆栈信息提取出来。 令人开心的是, android.util.Log 类提供了这么一个工具方法: 通过该方法,可以直接把 Throwable 对象的堆栈信息都拿出来了。 他有4个构造方法。每个构造方法都会调用 fillInStackTrace() 来记录当前的堆栈信息。 只有两个参数可选:String类型的message,和他的cause Throwable。 那么现在来看一下这两个变量对Throwable有什么用,以及对我们来说有什么意义。 先说结论: detailMessage 和 cause 变量在调用 printStackTrace() 的时候都会被打印出来。 看下 printStackTrace() 看下 toString 是如何包含 message 进来的: 看下打印cause: 可以发现, printEnclosedStackTrace() 方法中又调用了 getCause() 和 printEnclosedStackTrace() ,那么其实就是一个递归,直到递归到最根源的那个cause。 那么当我们要构造一个 Throwable 对象的时候,如果上下文中有一个关联的 Throwable ,那么把他作为cause参数来构造新的 Throwable 对象,这样能更好地记录问题真正的原因。
2023-07-17 16:45:091

Throwable的子类都有什么?

在elcipse里面,Throwable上按ctrl+T所有可抛出的异常类,都继承了这个类。。
2023-07-17 16:45:173

catch,Throwable或Exception,有什么区别?

catchnbsp;n.nbsp;捕捉,陷阱,捕获物nbsp;v.nbsp;抓住;赶上,了解,感染nbsp;Throwablenbsp;可投掷的nbsp;exceptionnbsp;n.nbsp;例外Pleasenbsp;read:http://www.gdglc.com/bbs/dispbbs.asp?boardid=11amp;ID=20790amp;replyID=20790Java语言要求java程序中(无论是谁写的代码)所有抛出(throw)的异常都必须是从Throwable派生而来。当然,实际的Java编程中,由于JDK平台已经为我们设计好了非常丰富和完整的异常对象分类模型。因此,java程序员一般是不需要再重新定义自己的异常对象。而且即便是需要扩展自定义的异常对象,也往往会从Exception派生而来。所以,对于java程序员而言,它一般只需要在它的顶级函数中catch(Exceptionnbsp;ex)就可以捕获出所有的异常对象。nbsp;所有异常对象的根基类是nbsp;Throwablenbsp;,Throwable从Object直接继承而来(这是java系统所强制要求的),并且它实现了nbsp;Serializable接口(这为所有的异常对象都能够轻松跨越Java组件系统做好了最充分的物质准备)。从Throwable直接派生出的异常类有Exception和Errornbsp;。Exception是java程序员所最熟悉的,它一般代表了真正实际意义上的异常对象的根基类。也即是说,nbsp;Exceptionnbsp;和从它派生而来的所有异常都是应用程序能够catch到的,并且可以进行异常错误恢复处理的异常类型。而Error则表示Java系统中出现了一个非常严重的异常错误,并且这个错误可能是应用程序所不能恢复的,例如LinkageErrornbsp;,或nbsp;ThreadDeathnbsp;等。 查看原帖>>
2023-07-17 16:45:312

throwable是类还是接口,请详细解释一下,谢谢!

是 接口,它继承了 Collection 接口以定义一个允许重复项的有序集合。该接口不但能够对列表的一部分进行处理,还添加了面向位置的操作
2023-07-17 16:45:403

PHP 7异常与错误 —— Throwable

Throwable 是 PHP 7 中可以用作任何对象抛出声明的基本接口,包括 Expection (异常)和 Error (错误)。
2023-07-17 16:45:471

如何理解java.lang.Throwable

Throwable 是异常的根类所有异常类的根类, 下面又包含两大异常, Exception 还有 Error
2023-07-17 16:45:562

Java中,所有的异常的父类是那个?

Throwable是所有异常Exception和错误Error的祖先
2023-07-17 16:46:056

JAVA 中 Throwable是所有异常类的祖先 对吗???

记得好像所有的类都是object的子类...再看看别人怎么说的。
2023-07-17 16:46:266

java所有的异常类皆继承哪一个类

2023-07-17 16:46:543

java里的throw new throwable

抛出异常
2023-07-17 16:47:103

Throwable怎么读啊 java里的所有的子类啊

你们真NB,呵呵
2023-07-17 16:47:184

java中为何泛型类不能继承Throwable?

虚拟机的规格标准强制的规定的:JVM虚拟机目前没有实现捕捉“泛型的抛出对象”,捕捉机制只对非泛型类有效。泛型模板在编译时也会类型具体化。
2023-07-17 16:47:343

如何理解java.lang.Throwable

lang 是 language(语言) 的简写 是java中常用方法最多的包 包含常用类 软件包 java.lang 的描述提供利用 Java 编程语言进行程序设计的基础类。最重要的类是 Object(它是类层次结构的根)和 Class(它的实例表示正在运行的应用程序中的类)。
2023-07-17 16:47:411

应用技巧:Java中的异常处理

异常处理是初学者经常忽视执行的编程技巧。然而,当他们完成了一项大型项目后,就会发现仅仅停留在表面的工作是不够的。在本文中,我们将对异常处理进行讨论,并为大家解释其重要性,尤其是要告诉大家怎样处理这些情况。   首先,让我们解释一下什么是异常情况,通常也称例外。正如在其他的编程语言中那样,它也适用于Java:异常情况是那些在运行时出现错误的情况。这些错误并非真正的错误,因为他们是一些例外。我们可以将这些情况理解为必须解决的异常事件,否则程序将无法继续执行。所以我们就有必要了解怎样处理异常事件。   在异常事件的例子中最显著的应该是在程序执行时,运行时的分配变成了零。这样程序就无法执行,于是Java就会抛出一个异常事件,确切点说是ArithmeticException。从Java程序员的角度来看,异常事件是对象。抛出异常事件类似于抛出对象。但是,并非所有的对象都可以被抛出。   为了充分理解可抛出的异常事件,整个类层次结构的一些部分要被提交。主要的类称为Throwable。这个类拥有两个子类:Exception 和Error。一个异常事件对象应从Throwable的类中传出。意味着它应该是Exception子类或Error子类的一个对象实例。这些都可以在 java.lang数据包中找到。   异常处理就是捕捉可能在运行时被抛出的异常事件的一项技术。Java通过try-catch-finally的异常处理语句为我们提供了强大的异常处理解决方案。而在另一方面,你也可以使用已经声明的异常事件,如ArithmeticException, NullPointerException等。其他类扩展了Exception 类,如IOException子类。   此外,我们应该注意到异常事件包含了两种情况:检查过的和没检查的。技术上,我们认为没检查过的异常事件RuntimeExceptions。这些不需要在抛出的语句中作出声明,而且对它们的捕捉也是选择性的。不过,它们一般不会有什么影响,如果程序员根本不能发现它们的存在。在大多数情况下,这些都是逻辑性的编程错误,如NullPointerException或者ArrayIndexOutOfBounds。   同时,对异常事件进行技术性检查也迫使程序员对其进行处理和管理,意味着要对其进行单独捕捉并覆盖。这些都来自Exceptions类和它的子类,包括我们之前讨论过的RuntimeExceptions。检查过的异常事件要求异常事件处理因为它们有可能导致程序终止。   现在,我们对异常事件有了个基本的了解,下面就让我们启动集成开发环境开始编码吧!   异常处理   前面我们提到了异常处理就是指处理代码中的异常事件,或者在运行时向运行引擎抛出异常事件,在引擎末端它会搜索异常事件处理例程。它使用包含了一系列方法调用的调用堆栈进行搜索。   一般而言,异常事件可能因为包含一个异常活动或其他异步异常导致的。我们讨论的异常事件包括了一些基本的处理议题:怎样捕捉和处理这些异常事件。   Java允许我们创建自己的Exception对象和类,但是会有一个关键的请求。这些对象和类必须是扩展的Exception类。编码标准要求异常事件应该充分命名,意味着它们的名字就代表了其本身。   throw new Exception(“ This is an exception!”)   下面,我们看看要怎样捕捉和处理这些异常事件。检查以下代码:   try{   // this is the block of code where the exception happens   // sometimes called as source/root of exception   // or even called as tricky block or tricky method   }   catch{Exception_Typel e) {   // dealing with this kind of exception   }   Catch (Exception_Type2 e) {   // dealing witn this kind of exception   }   //... unlimited number of catches are possible   finally {   // this block of code is always executed   }   try-catch-finally语句的第一个部分是尝试阻止。这是异常事件有可能发生的部分。通常,我们建议代码行用最小的数量来编写,因为它们只会在异常事件发生的时候执行。这种情况发生时,执行会跳转去捕捉那些异常事件被比较的块中。如果它们匹配,那么就可以处理异常事件。   不论尝试阻止的时候,异常事件会不会发生,或不管能不能得到处理,阻止总会执行。由于它总是被执行,所以我们推荐你在这里做一些清理。因此,正如所预料的那样,执行起来就是具有选择性的。   Try-catch模块的结构类似于switch-case的结构。在检查过的需要处理的异常事件中,是有可能在相同方法中将其处理或者抛出的。后者可以通过关键词抛出。在这种情况下,异常事件的种类必须在方法签名中被指定。看这个例子:   Void myMethod () throws SomeKindOfException{   // method goes here   }   接下来,我们将为大家展示更多的异常处理实例。   初学者常常与非匹配数据类型纠缠不清。通常,它们会引发一些问题,例如,在做加法时出现非数字型代码。下面给大家展示的代码中,出现了异常处理的工作环境。检查该网页以完成嵌入式Exception种类的清单。现在,我们要处理NumberFormatException 的发生。   public static void main (String args[] ) {   double sum= 0;   for (int i=0; i﹤args. length; ++1)   try {   sum+= Double.parseDboule (args[i]);   }   Catch (NumberFormatException e) {   Ststem.out.printIn(args[i] + “non-numeric data on”);   }   System.out.printIn(“Total sum: “+ sum);   }   正如你所见到的,它和命令行参数一起运行,而且一旦轮到非数字型参数,它就会写入system.out,意指出现的问题。但是项目会继续进行,因为try模块是循环的。否则,没有合适的异常处理,项目就会终止。用这种方式总和还是可以计算处理并在最后显示处理。  我们来看看另一个例子。在这个例子中,我们会要建立自己的异常实例类,该类扩展了其母Exception类。应用程序会模拟用于异常处理和抛出的堆栈机制,如堆栈是满的或者是空的。检查一下。   Public class StackException extends Exception {   Public StackException (String text) {   Super (text)   }   }   现在让我们创建一个Stack类。注意push和pop方法。它们正抛出StackException,而这一动作由方法签名导入。此外,还有一个if条件,且条件满足时,异常事件会被抛出。否则,一切都会顺利运行。   public class Stack {   private final int SIZE = 100;   private Object st[];   private int size;   private int sp;   public Stack (int size) {   if (size < MAXSIZE)   this.size = size;   else   this.size = MAXSIZE;   this.st = new Object [size];   this.sp = -1;   }   public void push (Object o) throws StackException {   if (sp == this.size - 1)   throw new StackException ("Stack is full");   this.st [++this.sp] = o;   }   public Object pop () throws StackException {   if (sp == -1)   throw new StackException ("Stack is empty");   Object o = this.st [this.sp];   this.sp--;   return o;   }   public boolean isEmpty() {   return this.sp == -1;   }   }   好的,现在是时候写一写Main class连同主要方法了。在这一部分,请对try-catch语句给予更多关注。有两类异常情况可以被捕捉到。你也可以很容易地找出它们。   public class Main {   public static void main (String args[]) {   Stack s = new Stack (10);   for (int i = 0; i <= 10; ++i)   try {   s.push (new Integer(i));   }   catch (StackException e) {   System.out.println (e);   }   while (! s.isEmpty() ) {   try {   System.out.println( (Integer)(s.pop()) );   }   catch (StackException e) {   System.out.println(e);   }   }   }   }   当然,这里也会有附带输出。如你所见,第一行显示出的就是异常事件,因为我们要用11个要素填补堆栈,因此,在循环到isEmpty是错误的时,异常事件不会抛出。   Stack is full   练习几次以上的几段代码。如果异常事件被抛出但是却能够正确被处理那就不要感到惊讶。这就是异常处理的神奇之处。   总结   在这篇文章里我们就异常处理的实用性和重要性进行了分析。我们都知道,不管是检查过的或是未经检查的,程序员都要处理好异常事件,否则可能出现程序的异常终止。我们强调要将理论与实践相结合。坦率地说,本文虽只是冰山一角,但一些基本的知识已经介绍给了大家。希望能在异常处理方面对大家有所帮助。
2023-07-17 16:47:481

严重: StandardWrapper.Throwable

log4j-1.2.15.jar把这个包放在你装的tomcat下commonlib目录下就好了!
2023-07-17 16:47:573

Java的异常处理语法

catch(Exception e){处理语句}
2023-07-17 16:48:183

slf4j怎么打印java错误堆栈信息throwable对象

SLF4J 1.6.0 以前的版本,如果打印异常堆栈信息,必须用log.error(Stringmsg,Throwablet)log.info等对应方法.如果msg含有变量,一般用String.format方法格式化msg.如果用error(Stringformat,Object...arguments) 等其它方法,异常堆栈信息会丢失.幸好,SLF4J 1.6.0以后的版本对这个不友好的异常信息log 改进了.error(Stringformat,Object…arguments) 这个方法也会打印异常堆栈信息,只不过规定throwable对象必须为最后一个参数.如果不遵守这个规定,异常堆栈信息不会log出来.
2023-07-17 16:48:261

请问bug,error和Exception的区别

bug是指系统的漏洞,一般不会影响使用者使用error是指错误,如果发生error,则表示系统出现问题exception一般出现在编程语音中,指发生的异常
2023-07-17 16:48:363

java抛出异常: unknown

出现这个异常,表明向方法传递了不合法或不正确的参数。检查一下,是否在调用某个方法时,传递了与方法定义时不相符的参数类型。在SSM动态javaweb服务器框架中,经常看到这个异常,很多人说这是参数异常,检查自己在ioc容器中配置的参数是否正确,其实这是项目使用的Java编译器(即Javacompiler)使用的jdk版本和Java的运行环境(即jreJavaruntimeenvironment)版本不匹配造成的。扩展资料:类 Math 提供了常用的数学函数,比如正弦、余弦和平方根。类似地,类 String 和 StringBuffer 提供了常用的字符串操作。类 ClassLoader、Process、Runtime、SecurityManager 和 System 提供了管理类的动态加载、外部进程创建、主机环境查询(比如时间)和安全策略实施等“系统操作”。类 Throwable 包含了可能由 throw 语句抛出的对象(§14.16)。Throwable 的子类表示错误和异常。参考资料来源:百度百科-java.lang
2023-07-17 16:48:431

不兼容的类型: Exception无法转换为Throwable

Exception继承于Throwable 所以Exception能转化为Throwable ,Throwable 不能转化Exception
2023-07-17 16:49:011

求解:java.lang.IllegalArgumentException: No enum const class com.xxx.xxx.UserType.1 at java.

java.lang 类 IllegalArgumentExceptionjava.lang.Object java.lang.Throwable java.lang.Exception java.lang.RuntimeException java.lang.IllegalArgumentException所有已实现的接口: Serializable 直接已知子类: IllegalCharsetNameException, IllegalFormatException, IllegalSelectorException, IllegalThreadStateException, InvalidKeyException, InvalidOpenTypeException, InvalidParameterException, KeyAlreadyExistsException, NumberFormatException, PatternSyntaxException, UnresolvedAddressException, UnsupportedAddressTypeException, UnsupportedCharsetException --------------------------------------------------------------------------------public class IllegalArgumentExceptionextends RuntimeException抛出的异 常表明向方法传递了一个不合法或不正确的参数。 从以下版本开始: JDK1.0 另请参见:Thread.setPriority(int), 序列化表格--------------------------------------------------------------------------------构造方法摘要 IllegalArgumentException() 构造不带详细消息的 IllegalArgumentException。 IllegalArgumentException(String s) 构造带指定详细消息的 IllegalArgumentException。 IllegalArgumentException(String message, Throwable cause) 根据指定的详细消息和原因构造一个新异常。 IllegalArgumentException(Throwable cause) 根据指定的原因和 (cause==null ? null :cause.toString()) 的详细消息构造一个新异常(它通常包含 cause 的类和详细消息)。 方法摘要 从类 java.lang.Throwable 继承的方法 fillInStackTrace, getCause, getLocalizedMessage, getMessage, getStackTrace, initCause, printStackTrace, printStackTrace, printStackTrace, setStackTrace, toString 从类 java.lang.Object 继承的方法 clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait 构造方法详细信息 IllegalArgumentExceptionpublic IllegalArgumentException()构造不带详细消息的 IllegalArgumentException。 --------------------------------------------------------------------------------IllegalArgumentExceptionpublic IllegalArgumentException(String s)构造带指定详细消息的 IllegalArgumentException。 参数:s - 详细消息。--------------------------------------------------------------------------------IllegalArgumentExceptionpublic IllegalArgumentException(String message, Throwable cause)根据指定的详细消息和原因构造一个新异常。 注意,与 cause 相关的详细消息不是 自动合并到这个异常的详细消息中的。 参数:message - 详细消息(保存此消息,以便以后通过 Throwable.getMessage() 方法获取它)。cause - 原因(保存此原因,以便以后通过 Throwable.getCause() 方法获取它)。(允许使用 null 值,指出原因是不存在的或是未知的。)从以下版本开始: 1.5 --------------------------------------------------------------------------------IllegalArgumentExceptionpublic IllegalArgumentException(Throwable cause)根据指定的原因和 (cause==null ? null :cause.toString()) 的详细消息构造一个新异常(它通常包含 cause 的类和详细消息)。 此构造方法对于那些与其他 throwable(例如,PrivilegedActionException)的包装器相同的异常来说是有用的。 参数:cause - 原因(保存此原因,以便以后通过 Throwable.getCause() 方法获取它)。(允许使用 null 值,指出原因是不存在的或是未知的。)从以下版本开始: 1.5
2023-07-17 16:49:111

教您在Java开发过程中如何应对异常处理

早期的编程语言(比如C语言)没有异常处理,通常是遇到错误返回一个特殊的值或设定一个标志,并以此判断是不是有错误产生。随着系统规模的不断扩大,这种错误处理已经成为创建大型可维护程序的障碍了。于是在一些语言中出现了异常处理机制,比如在Basic中的异常处理语句“on error goto”,而Java则在C++基础上建立了新的异常处理机制。Java通过面向对象的方法进行异常处理,把各种不同的异常进行分类,并提供了良好的接口。这种机制为复杂程序提供了强有力的控制方式。同时这些异常代码与“常规”代码分离,增强了程序的可读性,编写程序时也显得更灵活。Java中的异常类在Java中,每个异常都是一个对象,它是Throwable类或其它子类的实例。当一个方法出现异常后便抛出一个异常对象,该对象中包含有异常信息,调用这个对象的方法可以捕获到这个异常并进行处理。Throwable类有两个标准子类:java.lang.Error和java.lang.Exception,即错误和异常。错误:Error类,一般是指虚拟机相关的问题,如系统崩溃、虚拟机出错误、动态链接失败等,这一类错误无法恢复或不可能捕获,将导致应用程序中断。异常:Exception类,则是指一些可以被捕获且可能恢复的异常情况,如数组下标越界Array,Index,OutOf,Bounds,Excepton。数字被零除产生异常:ArithmeticException 、输入/输出异常:IOException等。提示:Java编译器要求Java程序必须捕获或声明所有非运行时的异常,如:FileNotFoundException、IOException等。因为,对于这类异常来说,如果程序不进行处理,可能会带来意想不到的结果。但运行时出现异常可以不做处理,因为这类异常很普遍,全部处理可能对程序的可读性和运行效率产生影响。Java异常处理形式,Java的异常处理是通过5个关键词来实现的:try、catch、throw、throws和finally。一般情况下是用try来执行一段程序,如果出现异常,系统会抛出(throws)一个异常,这时候你可以通过它的类型来捕捉(catch)它,或最后(finally)由缺省处理器来处理。下面是Java异常处理程序的基本形式: try //执行时程序块 catch ExceptionType1e //对ExceptionType1的处理 catch ExceptionType2e //对ExceptionType2的处理 throw e //再抛出这个“异常” finally try程序块和catch语句:遇到一个try语句,“异常”的框架就放到堆栈上面,直到所有的try块内的语句都完成。如果下一级的try语句没有对某种“异常”进行处理,堆栈就会展开,直到遇到有处理这种“异常”的try语句。 在try程序后面,应包含一个catch子句来指定你想要捕捉的“异常”的类型。提示:捕获异常的第一步就是用try … 选定你要捕获异常的范围,在执行时,括号内的代码会产生异常对象并被抛出。然后你就可以用catch块来处理异常了。 throw语句和throws语句:throw语句用来明确地抛出一个“异常”。首先,你必须得到一个Throwable类或其它子类产生的实例句柄,通过参数传到catch子句,或者用new语句来创建一个实例。 下面是throw语句的通常形式: throw ThrowableInstance,提示:执行throw语句后,运行流程将立即停止,throw的下一条语句也将暂停执行。这里new运算符用于创建一个Throwable类的实例,在后文的面向对象编程一文中将详细讲解。 throws语句用来标明一个成员函数可能抛出的各种“异常”。对大多数Exception子类来说,Java编译器会强迫你声明在一个成员函数中抛出的“异常”的类型。如果“异常”的类型是Error或RuntimeException,或它们的子类,这个规则不起作用。如果你想明确地抛出一个RuntimeException,你必须用throws语句来声明它的类型。 提示:当然,你可能对上面的说明不是很明白,不过不要紧,编译运行下面的Java程序(已经为你做了详细的注释)你会理解很多! 现在我们用下面的例程来说明问题: class ThrowsDemo //类名,相应的java源文件应该保存成: ThrowsDemo.javastatic void procedure throws IllegalAccessException //throws语句 //抛出IllegalAccessException类型的异常System.out.println ″inside procedure″ //输出文本信息,以说明是在执行procedure方法时抛出了异常throw new IllegalAccessException ″demo″ //新生成一个Throwable类实例,然后抛出异常 public static void main String args //main 方法开始,程序从此处执行 try //try语句块开始procedure //调用procedure方法,该方法将Throw(抛出)异常信息 catch IllegalAccessException e //处理IllegalAccessException类型的异常, catch语句块System.out.println ″caught ″ + e 编程并执行程序,其过程如下: E javacodeexception>java ThrowsDemoinside procedurecaught java.lang.IllegalAccessException demo提示:如上面的代码所示,我们用了一个完整的程序来说明在Java程序中如何使用try…catch…throw等语句。Try … 里产生的异常被捕获了下来,然后在catch块里进行处理(这里只是输出异常信息)。 throws IllegalAccessException标明程序将抛出一个IllegalAccessException类型的异常。IllegalAccessExceptione生成一个异常对象,然后用System.out.println输出异常信息。 finally语句,有时为了确保一段代码不管发生什么异常都要被执行,可以使用关键词finally来标出这样一段代码。一个成员函数返回到调用它的成员函数,或者通过一个没捕捉到的异常,或者通过一个明确的return语句,finally子句总是恰好在成员函数返回前执行。 下面我们以一个比较完整的异常处理程序来说明上面所述的各种异常处理语句的使用问题: class ExceptionDemo //异常使用示例,保存为ExceptionDemo.javastatic void procA try System.out.println ″inside procA″ throw new RuntimeException ″demo″ //抛出异常finally System.out.println ″procA"s finally″ //注意:不管发生什么等会执行!!static void procB try System.out.println ″inside procB″ return //返回,实际上是在finally语句执行完后才返回finally System.out.println ″procB"s finally″ public static void main String args try procA catch Exception e System.out.println ″catch ″+e procB提示:在上面的完整程序中,finally后的大括号内的代码是任何情况下都会执行的。另外,在procB中,return 语句并没有立即返回,这一点应该特别注意。你可以亲自动手,执行上面的程序试试(编译和执行类似于上例)。 到目前为止,关于Java的流程控制已经完全讲完了。要真正理解并掌握它们只有经过大量的练习。而好的方法就是修改上面的每一个程序,让它们实现你想要的功能,并在此基本上理解Java的流程控制。 而要写好Java程序,熟悉使用Java的流程控制和异常处理是非常关键的。
2023-07-17 16:49:191

我设置过环境变量,当时在运行程序的时候还是出现了:设置延迟的 未捕捉到 java.lang.Throwable

不知道你用没用IDE,Eclipse中的话,可能是类没有调用的问题不过还是检查下环境变量吧。。。
2023-07-17 16:50:084

error和exception有什么区别

二者的不同之处:Exception:1.可以是可被控制(checked) 或不可控制的(unchecked)2.表示一个由程序员导致的错误3.应该在应用程序级被处理Error:1.总是不可控制的(unchecked)2.经常用来用于表示系统错误或低层资源的错误3.如何可能的话,应该在系统级被捕捉
2023-07-17 16:50:174

slf4j怎么打印java错误堆栈信息throwable对象

打印堆栈直接用e.printtracestack()就可以了了
2023-07-17 16:50:383

在java中_____是所有异常类的父类,java中进行异常处理的语句是______

Throwable是所有异常的父类,处理语句:try{//代码块}catch(Exception e ){//代码块}finally{//代码块}
2023-07-17 16:50:482

有关Java的问题 Throwable中getMessage()干什么用的 问题:getMessage()中为什么显示5

getMessage方法是用来取内置的消息的具体来说,就是你在new Exception的时候给的那个String参数
2023-07-17 16:50:562

java中常见的异常类

参见科技与人文网(网页链接),里面有Java相关问题以及解决方案,异常相关就有80多种,执行异常、异常跟类等等。
2023-07-17 16:51:0812

java 中Throw能抛出的是什么? A:ERROR B:Event C: Object D: Throwable E: Exception F: RunTimeExcepti

应该是E吧
2023-07-17 16:52:026

public void finalize() throws Throwable 不是在垃圾回收的时候强制调用的么,为什么运行不出来?

你的代码正确,这是我运行后的结果,你运行不出来第一种可能是:java的配置问题!第二种可能是:你当时运行的程序过多,当条用System.gc();//垃圾收集器时,并没有申请到系统的执行权,另外提醒你一下:为了提高垃圾回收器的执行权你可以在主线程中使用Thread.sleep(1000);让主线程休息1秒,可以大大提高此程序的执行权,你可以尝试一下!~~~如有疑问,共同探讨!望采纳~谢谢!!!
2023-07-17 16:52:241

Throwable的子类都有哪些?

有两个子类 :一、Error二、Exceptionthrowable和Exception的区别:一、Throwable 类是 Java 语言中所有错误或异常的超类。只有当对象是此类(或其子类之一)的实例时,才能通过 Java 虚拟机或者 Java throw 语句抛出。类似地,只有此类或其子类之一才可以是 catch 子句中的参数类型。二、两个子类的实例,Error 和 Exception,通常用于指示发生了异常情况。通常,这些实例是在异常情况的上下文中新近创建的,因此包含了相关的信息(比如堆栈跟踪数据)。三、Exception 类及其子类是 Throwable 的一种形式,它指出了合理的应用程序想要捕获的条件。
2023-07-17 16:52:491

java里的throw new throwable

分类: 电脑/网络 >> 程序设计 >> 其他编程语言 问题描述: try { int i=11/b; throw new Throwable("Here is my Exception")} ………… 请问throw new throwable是什么意思? 解析: 抛出一个自定义的异常,这个异常被处理之后会得到, "Here is my Exception"这个值.
2023-07-17 16:52:581

tomcat 6 启动报错 SEVERE: createMBeans: Throwable

Caused by: java.lang.IllegalArgumentException: Invalid name->Catalina:type=NamingResources,resourcetype=Context,path=/,host=*这个配置有问题
2023-07-17 16:53:051

java所有的异常类皆继承哪一个类

个人认为你的答案是错误的,因为.java.lang.throwable是java.lang.exception的父类,所以所有的类应该都继承了throwable个类吧。你说的异常的类,是只能抽象类了.某子类c,父类p.如果p是普通的类,则c不必重写p内部的方法.重写是可选的.如果p抽象类
2023-07-17 16:53:152

请问在java语言异常处理中的getCause()方法的用法?

getCause()返回此异常的原因(尝试加载类时发生错误引发的异常;否则返回 null)。
2023-07-17 16:53:242

在JAVA中为什么字符转换为数值是会抛出异常?抛出什么异常?

抛出 NumberFormatException
2023-07-17 16:53:354

下列方法中,不属于Throwable类的方法是(  )。

【答案】:CtoString是Object类的方法,所有类都从Object类继承。
2023-07-17 16:53:421

java.lang.IllegalArgumentException

应该是你传入参数据到你的pojo的类型或值有问题
2023-07-17 16:53:515

java的异常分类有哪些?

异常的分类:Throwable包含了错误(Error)和异常(Excetion两类)。Exception又包含了运行时异常(RuntimeException, 又叫非检查异常)和非运行时异常(又叫检查异常)。Error是程序无法处理了, 如果OutOfMemoryError、OutOfMemoryError等等, 这些异常发生时, java虚拟机一般会终止线程。运行时异常都是RuntimeException类及其子类,如 NullPointerException、IndexOutOfBoundsException等, 这些异常是不检查的异常, 是在程序运行的时候可能会发生的, 所以程序可以捕捉, 也可以不捕捉. 这些错误一般是由程序的逻辑错误引起的, 程序应该从逻辑角度去尽量避免。检查异常是运行时异常以外的异常, 也是Exception及其子类, 这些异常从程序的角度来说是必须经过捕捉检查处理的, 否则不能通过编译. 如IOException、SQLException等。
2023-07-17 16:54:061

严重: StandardWrapper.Throwable

能看懂一定给你说
2023-07-17 16:54:431

e.printStackTrace() ; 是什么意思?

捕获异常的语句:e.printStackTrace();1、e是Throwable的实例异常对象,用在catch语句中,相当于一个形参,一旦try捕获到了异常,那么就将这个异常信息交给e,由e处理,printStackTrace()是异常类的一个方法。与它重载的方法还有printStackTrace(PrintStream s) 和printStackTrace(PrintWriter s)。2、在Throwable类中printStackTrace()内部是这样执行的:public void printStackTrace() {printStackTrace(System.err);}3、它调用了printStackTrace(PrintStream s)方法。err是System类当中的一个静态PrintStream类型字段。所以它能传递进去。扩展资料public void printStackTrace()将此 throwable 及其追踪输出至标准错误流。此方法将此 Throwable 对象的堆栈跟踪输出至错误输出流,作为字段 System.err 的值。输出的第一行包含此对象的 toString() 方法的结果。剩余行表示以前由方法 fillInStackTrace() 记录的数据。此信息的格式取决于实现,但以下示例是最常见的:java.lang.NullPointerExceptionat MyClass.mash(MyClass.java:9)at MyClass.crunch(MyClass.java:6)at MyClass.main(MyClass.java:3)参考资料百度百科-Java
2023-07-17 16:54:512

java的异常处理两种方式, super(msg);什么意思啊?

一、第一种定义方式,继承Exception类public class MyFirstException extends Exception {public MyFirstException() {super();}public MyFirstException(String msg) { super(msg);}public MyFirstException(String msg, Throwable cause) {super(msg, cause);}public MyFirstException(Throwable cause) {super(cause);}//自定义异常类的主要作用是区分异常发生的位置,当用户遇到异常时,//根据异常名就可以知道哪里有异常,根据异常提示信息进行修改。}二、 第二种定义方式:继承Throwable 类public class MySecondException extends Throwable {public MySecondException() {super();}public MySecondException(String msg) {super(msg);}public MySecondException(String msg, Throwable cause) {super(msg, cause);}public MySecondException(Throwable cause) {super(cause);}}
2023-07-17 16:55:171

java中exception的处理

有catch 就说明处理了 就算catch里面什么也不写 那也叫空处理 错误不会影响程序继续运行你说那个 叫 throw 是往外抛异常 如果外层没有处理 即外层没有 try catch 继续向外跑直到被处理 如果一直没处理 就会报错
2023-07-17 16:55:272

华为手机一直出现(错误原因null)怎么清除,有什么影响对手机

应该是自身软件运行出错,你关机了,等一个小时在开机。还可能是你安装的软件与系统软件冲突,你把你安装的软件卸载。
2023-07-17 16:55:351

java.lang.reflect.UndeclaredThrowableException怎么回事

JDK的java doc是这么解释UndeclaredThrowableException的:如果代理实例的调用处理程序的 invoke 方法抛出一个经过检查的异常(不可分配给 RuntimeException 或 Error 的 Throwable),且该异常不可分配给该方法的throws子局声明的任何异常类,则由代理实例上的方法调用抛出此异常。明白了什么是UndeclaredThrowableException后,就可以查找具体的代码。比方说测试环境不稳定,等待超时,抛出了一个TimeOutException,而这个TimeOutException不是业务方法所声明的异常,因此就被包装成UndeclaredThrowableException抛出了。
2023-07-17 16:55:501

public void Main() throws Throwable如何理解这里的异常抛出呢

有错误就往外抛异常,也没什么
2023-07-17 16:56:012

tomcat 启动抛出java.lang.IllegalArgumentException异常问题

C:Program FilesApache Software FoundationTomcat 6.0webappsswork这个目录不存在造成的问题。在你的程序里边搜索这个目录“swork”,或者查找配置文件中的该路径,初步怀疑是你的配置文件出的错误。多打了一个.s 默认应该是work。重装tomcat不会有任何帮助。
2023-07-17 16:56:106

e.printStackTrace() ; 是什么意思?

捕获异常的语句:e.printStackTrace();1、e是Throwable的实例异常对象,用在catch语句中,相当于一个形参,一旦try捕获到了异常,那么就将这个异常信息交给e,由e处理,printStackTrace()是异常类的一个方法。与它重载的方法还有printStackTrace(PrintStream s) 和printStackTrace(PrintWriter s)。2、在Throwable类中printStackTrace()内部是这样执行的:public void printStackTrace() {printStackTrace(System.err);}3、它调用了printStackTrace(PrintStream s)方法。err是System类当中的一个静态PrintStream类型字段。所以它能传递进去。扩展资料public void printStackTrace()将此 throwable 及其追踪输出至标准错误流。此方法将此 Throwable 对象的堆栈跟踪输出至错误输出流,作为字段 System.err 的值。输出的第一行包含此对象的 toString() 方法的结果。剩余行表示以前由方法 fillInStackTrace() 记录的数据。此信息的格式取决于实现,但以下示例是最常见的:java.lang.NullPointerExceptionat MyClass.mash(MyClass.java:9)at MyClass.crunch(MyClass.java:6)at MyClass.main(MyClass.java:3)参考资料百度百科-Java
2023-07-17 16:56:241