Portal > Foren > Java > Allgemeine Java-Programmierung > Klasse zur Fehlerverwaltung
Antwort
 
Themen-Optionen Thema durchsuchen
Alt 13.01.2006, 11:03 Nach oben    #1
Benutzer
 
Registriert seit: 13.01.2006
Ort: Hannover
Beiträge: 48
Standard Klasse zur Fehlerverwaltung

Hi, da ich kein allgemeines Programmierforum gefunden hab schreib ichs mal hier rein.

Also ich möchte mir gerne eine Klasse zur fehlerverarbeitung bauen und ich wollte gerne mal wissen wie ihr so eine Klasse bei euch aufbaut was sie alles können sollte usw.
Ich hab mir erstma vorgestellt as die KLasse fehler annehmen und ausgeben können sollte.
Aber was gibts noch für sachen die vieleicht wichtig wären? Bin grad erst neu auf dem gebiet vorausschauend Klassen zu entwerfen.
js-mueller ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 13.01.2006, 14:36 Nach oben    #2
Oliver O.
 
Benutzerbild von Xean
 
Registriert seit: 17.08.2005
Beiträge: 428
Standard

hi, wie wäre es mit einer Klasse, die von Throwable erbt.
Dann kann man im code verwenden:
Code:
try{
    //...
}catch(DeineThrowAbleKlasse e){
   //...
}
Und dann kannst du alle exceptions "lokal" behandeln.
Xean ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 17.01.2006, 08:44 Nach oben    #3
Benutzer
 
Registriert seit: 17.08.2005
Beiträge: 87
Standard

@Xean: DeineThrowAbleKlasse, weist welchen Vorteil bereits existierenden Klassen gegenüber auf?

@js-mueller: Ich verstehe noch nicht, welchen Nutzen Du Dir von so einer Klasse (oder vielleicht sogar mehreren) versprichst. Bitte genauer darlegen, denn Klassenschreiben ist kein Selbstzweck
VolkerK ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 17.01.2006, 17:58 Nach oben    #4
Oliver O.
 
Benutzerbild von Xean
 
Registriert seit: 17.08.2005
Beiträge: 428
Standard

ich weiß ja nicht, was js-mueller daraus dann macht, ob er jetzt eine klasse will, die über alle exceptions bescheit weiß oder ob er auf eine exception automatisch reagiert, ohne dass es in der catch-schleife steht (z.B. ein Fenster öffnen, in der die fehlernachricht steht)
Xean ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 22.01.2006, 16:49 Nach oben    #5
Benutzer
 
Registriert seit: 13.01.2006
Ort: Hannover
Beiträge: 48
Standard

Also im prinzip soll die Klasse Fehlermeldungen aufnehmen und später ausgeben lassen können.
Also mein Programm schmeißt fehler wie z.B. nen mysql fehler "feld nicht gefundne ...". Das wird dann an die Klasse geschickt und die Klasse speichert das. Und ich kann dann die letzten 25 meldungen oder so abrufen.
Ich hab die klasse grad auch soweit fertig nur ein Problem hab ich grad.

Und zwar wenn ich die letzten 25 meldungen speichere. Kann ja sein das die 25 voll sind und dann die alten gelöscht werden müssen.
Ich hab mir gedacht ich schreib ne for schleife mit der ich die daten im array um einen verschiebe und dann die neue meldungen auf [0] schreibe, aber das ist doch sicher sehr performance lastig oder?
js-mueller ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 22.01.2006, 16:53 Nach oben    #6
Projektleiter
 
Registriert seit: 30.11.2005
Ort: Bottrop
Beiträge: 1.134
Standard

Ähm... für sowas verwendet man normalerweise eine Logger-Klasse (z.B. java.util.logging). Wie dem auch sei: Statt mit nem Array zu arbeiten würde ich an deiner Stelle nen Stack oder eine ArrayList verwenden (beide zu finden in java.util).

Geändert von Ben (22.01.2006 um 20:28 Uhr) Grund: Habsch mal ein paar Links hinzugefügt :-)
pago ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 22.01.2006, 20:00 Nach oben    #7
Benutzer
 
Registriert seit: 13.01.2006
Ort: Hannover
Beiträge: 48
Standard

K guck ich mir die beiden sachen mal an.
Was ist denn eine loggerklasse, was macht die?
js-mueller ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 22.01.2006, 20:48 Nach oben    #8
Oliver O.
 
Benutzerbild von Xean
 
Registriert seit: 17.08.2005
Beiträge: 428
Standard

keine ahnung, aber wenn du mit ArrayList abeitest dann könnte das so aussehen:
PHP-Code:
ArrayList exceptionList = new ArrayList();
int maxEinträge 20;

public 
void addException(String msg){
   
exceptionList .add(msg);
   if(
exceptionList .size() > maxEinträge){
       
exceptionList .remove(0);
   }

Xean ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 23.01.2006, 13:20 Nach oben    #9
Projektleiter
 
Registriert seit: 30.11.2005
Ort: Bottrop
Beiträge: 1.134
Standard

Nehmen wir an, du hast ne hübsche Stack-Klasse (die, die ich jetzt gleich poste, ist effektiver, als die Standard-Klasse
Code:
public class ExceptionStack {
	private StackItem head;
	private int limit;
	private int size;
	
	public ExceptionStack() {
		limit = 25;
		size  =  0;
	}
	
	public void push(Throwable t) {
		// we've reached the limit
		if(size == limit) {
			pop();
		} else if(size == 0) {
			head = new StackItem();
			head.item = t;
		} else {
			StackItem last = head;
			// find the last item in Stack
			while(last.next != null) {
				last = last.next;
			}
			// create the new item
			StackItem i = new StackItem();
			i.item = t;
			// set it as next
			last.next = i;
		}
		// increase size
		size++;
	}
	
	public Throwable peek() {
		if(head == null) {
			return null;
		}
		return head.item;
	}
	
	public Throwable pop() {
		if(head == null) {
			return null;
		}
		size--;
		Throwable t = head.item;
		head = head.next;
		return t;
	}
	
	public boolean empty() {
		return size == 0;
	}
	
	private StackItem current;
	public void toHead() {
		current = head;
	}
	
	public Throwable next() {
		current = current.next;
		return current.item;
	}

	private class StackItem {
		private Throwable item;
		private StackItem next;
	}
}
Dann könntest du sie wie folgt verwenden:
Code:
// irgendwo in deinem Code ("exStack" ist die globale Instanz der ExceptionStack-Klasse, "exception" ist irgendeine Exception, die du abgefangen hast)
exStack.push(exception);

// und da, wo du die Dinger dann lesen möchtest:
exStack.toHead();
Exception e;
while((e = exStack.next()) != null) {
	e.printStackTrace();
}
Eine Logger-Klasse verwendet man normalerweise immer dann, wenn man irgendwelche Informationen zum Programmablauf speichern/ausgeben möchte.
Ich kann nicht so recht nachvollziehen, warum du überhaupt die Exceptions irgendwo speichern willst. Macht für mich keinen Sinn. Normalerweise gibt man die irgendwo aus (Konsole, Datei) und liest die dann hinterher.
pago ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 24.01.2006, 10:39 Nach oben    #10
Benutzer
 
Registriert seit: 13.01.2006
Ort: Hannover
Beiträge: 48
Standard

Ich hab mir das auch nochmal überlegt mir der Klasse.
Pago hat schon recht das in einer Klasse zu speichern wäre eigentlich nicht sehr sinnig.
Ich hab mir nun einen Logger geschreiben, welcher mir Fehler mir Auftrittsort-, Zeit in eine Datei schreibt.
Danke für die Hilfe
js-mueller ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 25.01.2006, 10:12 Nach oben    #11
Benutzer
 
Registriert seit: 17.08.2005
Beiträge: 87
Standard

Dafür hast Du hoffentlich java.util.logging oder Log4J verwendet?
VolkerK ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
PingBacks sind an
RefBacks sind aus

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Klasse verfügbar machen jjelliss PHP-Programmierung 7 09.09.2007 15:36
Klasse in Klasse verwenden? goelliboy PHP-Programmierung 12 07.09.2007 11:43
Wert Varible in Listener anderer Klasse nutzen??? risa Desktop-Applikationen und Grafik 1 03.04.2006 07:36
Design für eine Klasse js-mueller Allgemeine Java-Programmierung 1 12.03.2006 19:23
DB Klasse Problem, vererben, kombinieren ex³ PHP-Programmierung 7 05.02.2006 17:06


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:13 Uhr.


Powered by vBulletin® Version 3.7.4 (Deutsch)
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45