2011-07-10 28 views
22

thể trùng lặp:
break on unhandled exception in pycharmLàm thế nào để làm cho nghỉ pycharm vào Exceptions My

Tôi mới bằng Python và tôi đang cố gắng để gỡ lỗi chương trình python đầu tiên của tôi sử dụng PyCharm 1.5. Tôi muốn trình gỡ lỗi phá vỡ khi ngoại lệ xảy ra trong mã của tôi (và chỉ trong trường hợp của tôi).

Còn bây giờ tình hình là như sau: Tôi sử dụng (Ctrl + Shift + F8) Dialog để cấu hình gỡ lỗi và Nếu tôi đặt Đình chỉ tất cả = trueTất cả các trường hợp ngoại lệ = true sau đó phá vỡ debugger xa quá thường xuyên, ví dụ , nó phá vỡ một nơi nào đó bên trong PyCharm 1.5.1 \ helpers \ pydev \ pydevd.py đó là gây phiền nhiễu để bỏ qua mỗi lần. Và nếu tôi đặt bất kỳ tùy chọn nào khác thì trình gỡ lỗi sẽ không bị ngắt ngay cả khi ngoại lệ xảy ra trong mã của tôi.

PS: Nhân tiện, nếu tôi bỏ qua ngắt trong PyCharm 1.5.1 \ helpers \ pydev \ pydevd.py thì việc thực hiện tiếp tục mà không có lỗi hiển thị. Vì vậy, tôi không hiểu tại sao nó lại phá vỡ ở tất cả

+2

Nếu bạn không nhận được câu trả lời ở đây, có thể đáng nêu vấn đề tại [Trình theo dõi vấn đề Pycharm] (http://youtrack.jetbrains.net/issues/PY). Điều này có vẻ như nó có thể là một lỗi. Pycharm có lẽ không nên phá vỡ các ngoại lệ trong mã riêng của nó. –

+0

Ok, cảm ơn lời khuyên, tôi sẽ đăng ở đây nếu tôi tìm thấy những gì lên –

+0

nó đã làm việc khi bạn thêm một điểm gỡ lỗi trên bất kỳ vị trí nào? –

Trả lời

3

Một cách để phân biệt ngoại lệ của bạn với các ngoại lệ đến từ thư viện, là để chúng lấy được từ một lớp tùy chỉnh, ví dụ: nếu module của bạn được gọi Foo, bạn có thể có

class FooException(Exception): 
    pass 

và có trường hợp ngoại lệ cụ thể hơn xuất phát từ này:

class MyMathException(FooException): 
    # etc. 

Sau đó, trong PyCharm, thay vì cho phép All Exceptions, thêm FooException vào danh sách các trường hợp ngoại lệ để phá vỡ.

+0

Tôi đồng ý với những gì bạn nói, nhưng thường không phải tôi là người đưa ra một ngoại lệ –

+0

Ồ. Tôi đang bối rối bây giờ mặc dù, bạn nói "khi ngoại lệ xảy ra trong mã của tôi (và chỉ trong tôi)." Ví dụ: – UncleZeiv

+0

Có, nếu tôi gọi phương thức bị thiếu thì ngoại lệ sẽ xảy ra trong mã của tôi nhưng không phải là tôi ném một ngoại lệ –

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