2011-10-13 45 views
5

Tôi đang làm việc trên một ứng dụng java cho android và tôi hiện đang nhận được một vấn đề mà trình gỡ lỗi đang bước vào khối catch của tôi và bằng cách nào đó cũ là null? Có ai nhìn thấy bất cứ điều gì như thế này trước đây?bắt null ngoại lệ

} 
catch(Exception ex) 
{ 
    // Debugger is coming through the catch block and ex is null ???? 
} 

Trả lời

6

Điều này nghe có vẻ như mã nguồn và các lớp được biên dịch không đồng bộ, do đó trình gỡ lỗi đang bước vào khối sai.

Cố gắng làm sạch và sau đó xây dựng lại.

+0

Tôi đã làm sạch dự án và xây dựng lại, có vẻ như đã được sửa. Cảm ơn! –

1

Ngoại lệ sẽ không bao giờ bị vô hiệu trong khối đó. Nếu con trỏ chỉ dẫn trong trình gỡ lỗi đang trỏ vào dòng bắt, bạn cần phải thêm một dòng nữa để có thể truy cập ngoại lệ cho bạn. Bạn có thể muốn thêm một dòng mã (có khả năng một cuộc gọi đăng nhập) vào khối catch của bạn và đặt điểm break của bạn vào đó để nắm bắt những gì cũ.

+0

Vâng, tôi thậm chí đã thử 'ném null;' nhưng sau đó một thể hiện 'NullPointerException' bị bắt. –

+0

Nếu bạn đang nói rằng tôi đã trả lời câu hỏi của bạn, hãy nhấp vào hộp kiểm bên cạnh câu trả lời của tôi cho biết tôi đã giải quyết vấn đề của bạn. –

+0

Tôi không phải là người đã đặt câu hỏi, vì vậy tôi không thể làm điều đó. –

0

Thêm một số báo cáo nhật ký và kiểm tra. ex của bạn có thể nằm ngoài phạm vi.

+0

David Carpenter trong câu hỏi nói rằng "//Debugger là đến thông qua các khối catch và cũ là null ????". Vì vậy, "cũ" là trong phạm vi. – hasanghaforian

0

Tôi đã gặp sự cố tương tự bên trong AsyncTask, trong khi gỡ lỗi trên thiết bị thực (Galaxy Tab 2). Vì vậy, tôi cũng có thể xác nhận, rằng vấn đề kỳ lạ này là có thật.

Đối với tôi, câu trả lời được chấp nhận không hữu ích.

Nhưng trong trường hợp của tôi, sự cố đã biến mất sau khi rút phích cắm USB của thiết bị và kết nối lại sau đó (và sau đó chạy lại ứng dụng của tôi).

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