2011-02-08 38 views
6

Đây là những gì tôi muốn làm: Trong vòng lặp, nếu chương trình tìm thấy một lỗi, nó sẽ in ra "Không có gì" và đi đến vòng lặp tiếp theo (bỏ qua in ra "" Dịch vụ phát hiện tại cổng: "+ px + "\ n"?Làm thế nào để đi đến interation tiếp theo

đang những gì tôi nên đặt trong nắm bắt "break" hoặc "bên cạnh" hay ??? (Đây là java)

+0

câu hỏi tuyệt vời !!! – Deepak

Trả lời

13

Nếu bạn chỉ muốn in ra một thông điệp (hoặc thực hiện một số code) nếu một ngoại lệ không được ném vào một điểm cụ thể, sau đó đặt mã sau dòng mà có thể ném ngoại lệ:

try { 
    Socket s = new Socket(IPaddress,px); 
    System.out.print("Service discovered at port: " + px + "\n"); 
} catch(Exception e) { 
    System.out.print("Nothing\n"); 
} 

Điều này làm cho print không thực thi nếu một ngoại lệ được ném, vì tuyên bố try sẽ bị hủy bỏ.

Ngoài ra, bạn có thể có một tuyên bố continue từ bên trong catch:

try { 
    Socket s = new Socket(IPaddress,px); 
} catch(Exception e) { 
    System.out.print("Nothing\n"); 
    continue; 
} 
System.out.print("Service discovered at port: " + px + "\n"); 

Điều này làm cho tất cả các mã sau try/catch không thực hiện nếu một ngoại lệ được ném ra, kể từ khi vòng lặp được kể một cách rõ ràng để chuyển sang lần lặp tiếp theo.

+2

+1 để trả lời câu hỏi gốc và cung cấp giải pháp thay thế tốt. – Mikaveli

+0

Cảm ơn bạn đã thay thế ... tiếp tục hoạt động tốt – Deepak

15

Sử dụng tiếp tục từ khóa:

continue; 

Nó sẽ phá vỡ dòng điện ent lặp lại và tiếp tục từ đầu vòng lặp.

Dưới đây là một số đọc thêm:

continue Keyword in Java

3

Các từ khóa mà bạn đang tìm kiếm là continue. Bằng cách đặt continue sau câu lệnh in của bạn trong khối catch, các dòng còn lại sau khi kết thúc khối catch sẽ bị bỏ qua lần lặp tiếp theo sẽ bắt đầu.

1

Hoặc

  • Sử dụng từ khóa continue trong khối ngoại lệ
  • Di chuyển "Dịch vụ ..." để kết thúc khối try
Các vấn đề liên quan