package elte.java2_utikalauz5.exception; class VeremException extends Exception { /** Verziószám. */ private final static long serialVersionUID = 15L; } class VeremMegteltException extends VeremException { /** Verziószám. */ private final static long serialVersionUID = 15L; private Object utolsó; public VeremMegteltException(Object o) { utolsó=o; } public Object miVolt(){ return utolsó; } } /** Verem kivételkezelés. @link.forrásfájl {@docRoot}/../data/exception/src Verem.java @link.letöltés {@docRoot}/../data/exception Verem.jar @since Java Útikalauz programozóknak */ public class Verem { final static public int MÉRET=10; private Object tároló[]=new Object[MÉRET]; private int mutató=0; public void betesz(Object o) { try{ if( mutató= 0 && mutató < tároló.length; // .. naplózás műveletei } public synchronized void betesz4(Object o) { if( mutató < tároló.length ) { tároló[mutató] = o; naplo2(); ++mutató; } assert mutató > 0 && mutató <= tároló.length; } private void naplo2() { assert Thread.holdsLock(this); // .. naplózás műveletei } public static void main(String[] args) { Verem v = new Verem(); for(int i=0; i < 12; ++i ) { v.betesz("i:"+i+"\n"); } try { if( args.length == 1 ) { throw new VeremMegteltException(null); } else if( args.length == 2 ) { throw new VeremException(); } else if( args.length == 3 ) { throw new Exception(); } else { /*...*/ } } catch(VeremMegteltException v1) { /*...*/ } catch(VeremException v2) { /*...*/ } catch(Exception v3) { /*...*/ } v = new Verem(); try { for(int i=0; i < 12; ++i ) { v.betesz2("i:"+i+"\n"); } } catch (VeremMegteltException vme) { System.out.println(vme.miVolt()); } catch (Exception e) { System.out.println(e); } } }