JVM druckt die ausgelöste Ausnahme nicht aus [geschlossen]Java

Java-Forum
Anonymous
 JVM druckt die ausgelöste Ausnahme nicht aus [geschlossen]

Post by Anonymous »

Mein Programmsystem löst eine Ausnahme aus. Ich kann es sehen, wenn ich es unter Exclipse debugge. Die ausgelöste Ausnahme wird jedoch nicht im Protokoll angezeigt. Und wenn ich es einfach starte, sehe ich, wie das Programm ohne Grund startet und stoppt. Das Gleiche gilt, wenn die erstellte JAR-Datei nur von der Konsole aus ausgeführt wird, ohne Eclipse.
Ich verwende Java Runtime V23, kompiliert als Java 21 auf Quellebene mit JDK 23 und Spring Boot 3.4.0. Protokollierung mit Logback. „application.properties“ setzt „logging.level.root=TRACE“
Beim Öffnen des Projekts mit Intellij heißt es, dass meine „main“-Aufrufe nicht ausführbar sind. Obwohl es, wie gesagt, beim Aufruf über die Konsole ausgeführt wird, wurde es einfach nach einer einfachen Aufgabe gefragt. Habe eine erstellt:
  • Hauptklasse

    Code: Select all

    import de.gombers.common.reflection.Tools;
    
    @SpringBootApplication
    @MapperScan(basePackages = "de.gombers.myhome.common.awattar.dbaccess, de.gombers.myhome.common.lng.dbaccess")
    @ComponentScan({"de.gombers"})
    public class SampleGuiMain {
    
    @SuppressWarnings("unused")
    private static final Logger LOGGER = LoggerFactory.getLogger(Tools.getClassName());
    
    private static final String[] request = new String[] {
    "SampleGuiMainRunner"
    };
    
    public static void main(String[] args) {
    ApplicationContext contexto = new SpringApplicationBuilder(SampleGuiMain.class)
    .web(WebApplicationType.NONE)
    .headless(false)
    .run(request);
    }
    }
    
  • Command Runner-Klasse

    Code: Select all

    package de.gombers.myhome.mygui;
    import org.slf4j.Logger;
    import org.slf4j.LoggerFactory;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.boot.CommandLineRunner;
    import org.springframework.stereotype.Component;
    import de.gombers.common.reflection.Tools;
    
    @Component
    public class SampleMainGuiRunner implements CommandLineRunner {
    
    @SuppressWarnings("unused")
    private final static Logger LOGGER = LoggerFactory.getLogger(Tools.getClassName());
    
    @Autowired
    private final SampleMainGuiFrame mainFrame;
    
    @Autowired
    public SampleMainGuiRunner(final SampleMainGuiFrame mainFrame) {
    this.mainFrame=mainFrame;
    }
    
    @Override
    public void run(String...  args) throws Exception {
    if (!args[0].equals("SampleGuiMainRunner")) {
    LOGGER.debug("Nothing requested");
    return;
    }
    
    try {
    mainFrame.process();
    } catch (Exception e) {
    LOGGER.error("", e);
    }
    }
    }
    
  • JFrame und JPanel in ein JTabbedPane umwandeln

    Code: Select all

    package de.gombers.myhome.mygui;
    
    import java.awt.BorderLayout;
    import java.util.concurrent.ExecutorService;
    import javax.swing.JFrame;
    import javax.swing.JTabbedPane;
    import javax.swing.JTextField;
    import javax.swing.WindowConstants;
    
    import org.slf4j.Logger;
    import org.slf4j.LoggerFactory;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.stereotype.Component;
    
    import de.gombers.common.properties.MyComponentListener;
    import de.gombers.common.reflection.Tools;
    import de.gombers.myhome.common.environment.GuiProperties;
    import de.gombers.myhome.mygui.environment.MyHomeGuiProperties;
    import de.gombers.myhome.mygui.lng.LngConsumptionPane;
    
    @Component
    public class SampleMainGuiFrame extends JFrame{
    
    @SuppressWarnings("unused")
    private final static Logger LOGGER = LoggerFactory.getLogger(Tools.getClassName());
    
    @Autowired
    private final SampleMainGuiPane myPane;
    private JTextField messageBox;
    protected final JTabbedPane tabbedPanes = new JTabbedPane();
    
    @Autowired
    public SampleMainGuiFrame(final SampleMainGuiPane myPane) {
    super("MySample");
    this.myPane=myPane;
    }
    
    public void process() {
    this.messageBox  = new JTextField();
    this.messageBox.setEditable(false);
    
    tabbedPanes.addTab("Sample", null, myPane, "my sample");
    
    this.getContentPane().add(tabbedPanes, BorderLayout.CENTER);
    
    this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
    String panelId=this.getClass().getSimpleName();
    
    this.setVisible(true);
    }
    }
    
  • Der JPane löst eine Ausnahme nach Zweck aus

    Code: Select all

    package de.gombers.myhome.mygui;
    
    import java.awt.Color;
    import java.text.DecimalFormat;
    import java.util.List;
    
    import javax.swing.JButton;
    import javax.swing.JLabel;
    import javax.swing.JPanel;
    import javax.swing.JTextField;
    
    import org.slf4j.Logger;
    import org.slf4j.LoggerFactory;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.stereotype.Component;
    
    import com.brunchboy.util.swing.relativelayout.RelativeLayout;
    import com.brunchboy.util.swing.relativelayout.RelativeLayoutHelper;
    
    import de.gombers.common.reflection.Tools;
    import de.gombers.myhome.common.dataprovider.lambda.COPLambdaCalculator;
    import de.gombers.myhome.common.dataprovider.lambda.COPNibeCalculator;
    import de.gombers.myhome.common.dataprovider.lambda.COPSuperCalculator;
    import de.gombers.myhome.common.dataprovider.lambda.COPViessmanCalculator;
    import de.gombers.myhome.common.environment.GuiProperties;
    import de.gombers.myhome.lng.common.bindings.dto.AIOTEResultsMeterData;
    import de.gombers.myhome.mygui.environment.MyHomeGuiProperties;
    
    @Component
    public class SampleMainGuiPane extends JPanel {
    
    @SuppressWarnings("unused")
    private final static Logger LOGGER = LoggerFactory.getLogger(Tools.getClassName());
    
    private int top=10, left=10;
    private int colWidth = 50;
    
    private final JTextField messageBox;
    
    @Autowired
    public SampleMainGuiPane() throws Exception  {
    LOGGER.info("Have been invoked");
    this.messageBox  = new JTextField();
    messageBox.setForeground(Color.BLACK);
    throw new Exception("by purpose thrown");
    }
    }
    
Beim Debuggen wird das Programm bei der Ausnahme angehalten. Aber wenn das Programm gerade läuft, kommt es zu einem unerwarteten „normalen“ Ende.

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post
  • JVM druckt die ausgelöste Ausnahme nicht aus [geschlossen]
    by Anonymous » » in Java
    0 Replies
    2 Views
    Last post by Anonymous
  • JVM druckt die ausgelöste Ausnahme nicht aus [geschlossen]
    by Anonymous » » in Java
    0 Replies
    3 Views
    Last post by Anonymous
  • Echo -Array -Daten druckt nur "Array" druckt "Array".
    by Anonymous » » in Php
    0 Replies
    53 Views
    Last post by Anonymous
  • Wiederholt sich das nicht ausgelöste Verhalten?
    by Anonymous » » in C++
    0 Replies
    22 Views
    Last post by Anonymous
  • Marmimo druckt nichts, wenn irgendwo in der Zelle eine Ausnahme auftritt
    by Anonymous » » in Python
    0 Replies
    18 Views
    Last post by Anonymous