2016-03-20 24 views
0

Durumun durumunu 1 ile kontrol ederken ilk defa istisnayı nasıl atmadığını ve tüm koşulu denetlemesine izin verdiğinden nasıl emin olurum ve sonra "Sayı zaten eklenmiş olan Koşul" ile ilgili özel durumu atar ".Koşullu Atma istisnası

class Hello 
{ 
List<Integer> newExample=new Arraylist<Integer>(); 
List<Integer> example=new Arraylist<Integer>(); 
example.add(1); 
example.add(2); 
example.add(3); 
public void addExample() 
{ 
    for(Integer ex: example) 
    { 
    pl.adding(ex); 
    } 
} 
public void adding(Integer example) 
{ 
    if(example==1)//some work around so that rest of list of example (2,3) get chance to execute. 
    { 
     throw new NumberAlreadyAddedException("Number is already added") 
    } 
    newExample.add(example); 
} 
} 
+0

Sizin Kod çok anlam ifade etmiyor. 'For' döngüsü herhangi bir metodun dışında tanımlanır,' example' undefined ... Ve tbh bile sorunuzu anlamadım - 'tüm durumu kontrol etmesine izin ver ', ne demek istiyorsun? – radoh

+0

Örnek veya Sınav? Bu okunamaz ve soru anlaşılır bir şey değil. –

cevap

0

sizin durumunuzda size/aldığınız zaman içinde bir noktada yinelenen girişi için kontrol edilmelidir listeye değerler ekleyerek inanıyoruz. Ben biraz sen Listesine değer katmak ve üzeresiniz noktada ikinci bir nüsha denetimi yapmak için kodunu değiştirmiş değeri bir hata hemen atılmış bir kopya olmak bulunursa:

import java.util.*; 

class Hello{ 

    List<Example> exam = new ArrayList<Example>(); 

    public void execute() throws Exception{ 
     add(1); 
     add(2); 
     add(3); 
     add(1); 

     for(Example ex:exam){ 
      test(ex) 
     } 
    } 

    public void add(Integer value) throws IllegalArgumentException{ 
     if(exam.contains(value)){ 
      throw new IllegalArgumentException("Number is already added."); 
     } 
     exam.add(value); 

    } 

    public void test(Example example){ 
     System.out.println("Running test on Example: " + example);//pl.test(ex); 
    } 

    public static void main(String[] args){ 
     Hello hello = new Hello(); 
     hello.add(1); 
     hello.add(2); 
     hello.add(3); 
     hello.add(1); 
    } 
} 

class Example{} 
+0

Cevabınız için teşekkürler.Aynı şekilde uygulandım ama bir sorun yaşıyorum, Değeri (1,2,3) örneğin LinkedHashSet gibi sıralı sıradaysa ve benim ilk kontrolümde istisna alıyorum, o zaman kalan değerim istisna edilmeyecek (2,3). İstisna ettikten sonra kalan değerleri atlatmak istiyorum. – Rahul

+0

Elbette, her seferinde try/catch ile yeni bir değer eklediğinizde çevrelemek istersiniz. Özel durumu yakalayın, hatayı yazdırın ve devam edin. try {hello.add (1); } yakalamak (Exception ex) {System.out.println (ex.getMessage()); } .. böylece vb. – pczeus

+0

Bu sitede birçok örnek var veya web'de 'java özel durum işleme' nasıl yapılacağını gösteren eğiticiler var. – pczeus