Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 创建新异常的线程中的异常_Java_Eclipse_Multithreading_Exception - Fatal编程技术网

Java 创建新异常的线程中的异常

Java 创建新异常的线程中的异常,java,eclipse,multithreading,exception,Java,Eclipse,Multithreading,Exception,我已经用java创建了自己的异常,当我使用它时,控制台会告诉我这个错误 Exception in thread "main" Miexcept at Pelicula.cambiarNombre(Pelicula.java:108) at CarteleraProg.cambiar(CarteleraProg.java:69) at CarteleraProg.main(CarteleraProg.java:115) 如何解决此错误 该类的代码如下所示 import j

我已经用java创建了自己的异常,当我使用它时,控制台会告诉我这个错误

Exception in thread "main" Miexcept
    at Pelicula.cambiarNombre(Pelicula.java:108)
    at CarteleraProg.cambiar(CarteleraProg.java:69)
    at CarteleraProg.main(CarteleraProg.java:115)
如何解决此错误

该类的代码如下所示

import java.io.*;
public class Miexcept extends Exception{
public  Miexcept() {
    System.out.println ("El titulo que se desea modificar no existe");
}
}
我在这种情况下使用异常:

else throw new Miexcept();
非常感谢

像这样试试:

public class Miexcept extends Exception{
   public  Miexcept(String message) {
     super(message);
   }
}
如果要处理异常,请执行以下操作:

try {
    // your code that directly or indirectly throws Miexcept
} catch (Miexcept e) {
    e.printStackTrace(); // for debugging
    // here comes error handling code
}

(请注意,“间接”表示代码不会通过
throw
直接抛出异常,而是调用直接(或再次间接)抛出异常的方法)。

您在控制台中看到的不是错误,而是您创建并抛出的异常的跟踪

查看整个跟踪:

Exception in thread "main" Miexcept
    at Pelicula.cambiarNombre(Pelicula.java:108)
    at CarteleraProg.cambiar(CarteleraProg.java:69)
    at CarteleraProg.main(CarteleraProg.java:115)
CartelraProg类将在第115行中抛出您的
异常。由于没有其他类捕获您的
异常,因此JRE会在控制台中显示它


简而言之,您应该在控制台中看到,因为您正在抛出自己的异常。

到底是什么问题?控制台正在打印它应该打印的内容,以防出现异常。那么,问题是什么?你正在抛出一个异常,控制台正在报告抛出了一个异常。嗯,我不确定我是否理解你的问题,但在我看来,这正是你抛出异常时应该发生的事情……你期望发生什么?此外,通常情况下,在异常的构造函数中写入
系统是不好的做法。out
,而是将消息传递给超级构造函数(例如
超级(“异常原因”)
)。这里没有什么可看的,预期的行为。但我无法继续程序…对,因为您抛出了异常。你想干什么?我想如果你抛出异常是因为出了问题,对吧?那么,你就不能继续这个计划了。为什么要抛出异常?我抛出异常是为了在标题不正确时打印消息。好的,这就是问题所在。您使用异常是错误的。我建议您阅读一些关于异常的内容。简而言之,您正在使用异常打印错误消息;这不是例外的原因。您必须使用异常来停止执行流,因为您会说“嘿,出了什么问题,我无法解决它,然后我会抛出异常,希望其他人能够捕获它并执行预期的操作”。要打印错误消息,只需打印它。您不需要使用异常,只要在打印错误时执行System.out.println()。@user2942023如果这对您有效,请记住将问题标记为已回答。谢谢。我认为抛出异常只是为了立即捕获它不是一个好主意。好的。如果你把球扔到你抓住它的地方。。你能解释一下吗……好吧,我以为你是这个意思。我修改了你的答案。@isnot2bad我不是直接或间接的意思。无论何时抛出异常,都必须捕获它。简单地说,我是在同一个函数中指定的。我认为您需要throw和throw的教程,这就是“间接”的含义:在堆栈跟踪的某个更深的地方抛出异常。必须在“外面”的某个地方捕捉到它。直接把它扔到哪里去抓是没有用的。