2012-04-27 29 views
14

Sau khi phục vụ một vài yêu cầu nhật thực của tôi đã bắt đầu phá vỡ phương thức processWorkerExit().Eclipse ngắt trên processWorkerExit

Theo điều này link Tôi biết cách ngăn chặn sự phá vỡ nhật thực nhưng có bất kỳ lý do nào khiến mã bị phá vỡ trên dòng này hay không. Có thể có rò rỉ bộ nhớ trong trường hợp này không?

Tomcat 7.0.27
Eclipse 3.7.2
JDK 7.0.02

enter image description here

Trả lời

1

Lý do trình gỡ lỗi là dừng trên dòng đó là vì có một ngoại lệ được ném bởi mã trong khối try{} và dòng mã cụ thể đó là dòng mã thực thi tiếp theo sau khi ngoại lệ được ném. Bạn gần như chắc chắn có thể nhìn thấy dấu vết ngăn xếp của ngoại lệ đó trong cửa sổ bảng điều khiển, bởi vì theo mặc định, một ngoại lệ chưa được thực hiện mà bong bóng lên đến Thread.run() sẽ được gửi đến stderr.

Đối với câu hỏi của bạn về việc liệu có thể có rò rỉ bộ nhớ (hoặc nhiều khả năng, đây là Java, rò rỉ tài nguyên): câu trả lời là có, có có thể. Nhưng không có gì trong mã đó để cho biết rằng có . Nếu có một rò rỉ như vậy, nó gần như chắc chắn là vì có xử lý ngoại lệ không chính xác bên trong việc thực hiện task.

0

Tôi gặp vấn đề tương tự. Nó phá vỡ trong điều khoản try/catch của bạn nếu bạn có một nếu bạn không đăng nhập ngoại lệ. Hãy thử chèn một điểm ngắt hoặc đầu ra vào LogCat như sau:

try 
{ 
    //HERE I'VE PUT ALL THE FUNCTIONS THAT WORK FOR ME 
    Log.e("tag", "Sth passed!"); 
} 
catch (Exception e) 
{ 
    //The task failed 
    Log.e("tag", e.getMessage());   
} 

Nếu bạn không có khối try/catch đặt như trong mã trên. Trong LogCat, bạn có thể thấy dòng mã cuối cùng được chạy trước khi ngoại lệ, nó sẽ giúp bạn xác định lỗi trong mã của bạn như sau:

08-28 05: 49: 52.321: E/SQLiteDatabase (834): tại java.lang.Thread.run (Thread.java:841)

9

trả lời là ở đây: OpenJDK breaks on processWorkerExit with no breakpoint

trong debug mode trong eclipse theo mặc định, phá vỡ vào trường hợp ngoại lệ còn tự do là kiểm tra. Vì bạn không có phương pháp đánh bắt tại đây, có khả năng là một ngoại lệ không bắt buộc bị ném và trình gỡ lỗi đang vi phạm cho bạn ngay trước khi ngoại lệ được ném. Bạn có thể tắt tùy chọn này theo các tùy chọn trong Java-> Debug.

Các vấn đề liên quan