# CloneNotSupportedException



## havoc16 (23. Nov 2009)

Hallo,

wir haben momentan als Aufgabe bekommen verschiedene Exceptions abzufangen,
doch bei der o.g. habe ich gar keinen Plan, nicht einmal für ein einfaches funktionierndes Beispiel 


```
import java.io.*;

public class Ausnahmen {

	public static void main(String[] args) {
						
		//ArrayIndexOutOFBoundsException
		
		try {			
		
		int[] werte1 = {1, 3, 5, 7, 9};
		System.out.println(werte1[5]);
		
		}
		
		catch (Exception e) {System.out.println("ArrayIndexOutOFBoundsException abgefangen");
		}
		
		
		
		
		//ArithemeticException
		
		try {
		
		 int i = 0;
		 int j = 2 / i;
		 
			}
		catch (Exception e) {System.out.println("ArithemeticException abgefangen");
		}
		
		
		
		
		
		//FileNotFoundException
		
		FileReader test;
		try {
		test = new FileReader (new File("C:\\Testobjekt\\testdatei.txt"));
		
		} catch (Exception e) {System.out.println("FileNotFoundException abgefangen");
					
		}		
		
		

		//CloneNotSupportedException
		
		/*
		
		public object clone() {
	        try {
	            ArrayList<E> v = (ArrayList<E>) super.clone();
	            v.elementData = (E[])new Object[size];
	            System.arraycopy(elementData, 0, v.elementData, 0, size);
	            v.modCount = 0;
	            return v;
	        } catch (CloneNotSupportedException e) {
	            // this shouldn't happen, since we are Cloneable
	            throw new InternalError();
	        }
	    }
		
		
		*/
		
		
		//_______________________________________________
	}

}
```

Würde mich über ein einfaches Beispiel mit Clone freuen, da ich I-Net nicht so wirklich was lauffähiges gefunden hatte. (zumindest habe ich es nicht zum laufen gebracht)

EDIT:

OHNE THROW


----------



## Runtime (23. Nov 2009)

Hallo havoc16,

ich habe dir hier ein Beispiel:


```
package javacheck;

public class Class {

    public static void main(String[] args) {
        Class clas = new Class();
        try {
            Class cla = clas.clone();
        } catch (CloneNotSupportedException ex) {
            System.out.println("CloneNotSupportedException abgefangen.");
        }
    }

    @Override
    public Class clone() throws CloneNotSupportedException{
        return (Class) super.clone();
    }

}
```


----------



## javimka (23. Nov 2009)

meinst du sowas?

```
public class CnseDemo {
	public static void main(String[] args) {
		CnseDemo c = new CnseDemo();
		try {
			Object q = c.clone();
		} catch (CloneNotSupportedException e) {
			e.printStackTrace();
		}
	}

	public Object clone() throws CloneNotSupportedException {
		return super.clone();
	}
}

//EDIT: Mist, nur Zweiter ^^
```


----------



## havoc16 (23. Nov 2009)

Danke Leuts, hat mir echt weitergeholfen

so funzen tuts jetze nur noch die Optik und Kom mentare anpassen:toll:


```
import java.io.*;


public class Ausnahmen {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		
		
		//ArrayIndexOutOFBoundsException
		
		try {			
		
		int[] werte1 = {1, 3, 5, 7, 9};
		System.out.println(werte1[5]);
		
		}
		
		catch (Exception e) {System.err.println("ArrayIndexOutOFBoundsException abgefangen");
		}
		
		
		
		
		//ArithemeticException
		
		try {
		
		 int i = 0;
		 int j = 2 / i;
		 
			}
		catch (Exception e) {System.err.println("ArithemeticException abgefangen");
		}
		
		
		
		
		
		//FileNotFoundException
		
		FileReader test;
		try {
		test = new FileReader (new File("C:\\Testobjekt\\testdatei.txt"));
		
		} catch (Exception e) {System.err.println("FileNotFoundException abgefangen");
					
		}		
		
	
		
		
		//CloneNotSupportedException
		
		
		Ausnahmen c = new Ausnahmen();
		try {
            Object q = c.clone();
        } catch(Exception e) {System.err.println("CloneNotSupportedException abgefangen");}
        
		
        /*
		public object clone() {
	        try {
	            ArrayList<E> v = (ArrayList<E>) super.clone();
	            v.elementData = (E[])new Object[size];
	            System.arraycopy(elementData, 0, v.elementData, 0, size);
	            v.modCount = 0;
	            return v;
	        } catch (CloneNotSupportedException e) {
	            // this shouldn't happen, since we are Cloneable
	            throw new InternalError();
	        }
	    }
		
		
		
		
		Ausnahmen c = new Ausnahmen();
		
            Object q = c.clone();
        } catch(Exception e) {System.out.println("CloneNotSupportedException abgefangen");}
	
		*/
		//_______________________________________________
	}

}
```


----------



## faetzminator (24. Nov 2009)

Anmerkung: Man sollte in den meisten Fällen nicht grundsätzlich "Exception" abfangen. Wenn man nur eine bestimmte Exception erwartet, soll man auch nur diese abfangen. Kommt eine andere daher, deutet das auf einen Programmierfehler hin.


----------

