có cách nào để xử lý các trường hợp ngoại lệ của CPU như lỗi phân đoạn hoặc chia cho 0 không? Cho phép nói, tôi cần phải gọi một số chức năng không an toàn tiềm năng (ví dụ từ một tệp trình cắm thêm), điều đó có thể gây ra sự phân đoạn hoặc một số vấn đề khác mà tôi không thể kiểm tra trước khi thực thi nó. Tôi biết, thư viện chuẩn C có các chức năng xử lý tín hiệu, nhưng tôi không biết cách sử dụng chúng để xử lý vấn đề để tránh chấm dứt chương trình (tôi đoán, tôi không thể nhảy đến vị trí trước khi thực thi các hàm có vấn đề , hay tôi có thể?). Dưới cửa sổ, tôi có thể sử dụng trình xử lý ngoại lệ SEH, nhưng tôi không thể thực hiện điều đó trong Linux hoặc bất kỳ hệ điều hành nào khác. Điều gì về việc sử dụng trình xử lý ngoại lệ của riêng tôi để xử lý các vấn đề này, mức độ khác nhau giữa Windows/Linux là bao nhiêu? Điều đó có thể được thậm chí có thể (thông qua lắp ráp - cho phép nói chỉ trên nền tảng x86)?Xử lý ngoại lệ CPU trong C++
Tôi đang yêu cầu phần lớn sự tò mò, tôi không cố gắng giải quyết vấn đề hiện tại (chưa). Cảm ơn
Điều này có thể quan tâm: http://stackoverflow.com/questions/4747934/c-catch-a-divide-by-zero-error –
trong khi trong trường hợp của một segfault bạn không thể thực sự làm bất cứ điều gì, tôi phải thừa nhận sự phân chia bằng không, trường hợp tràn và tràn luôn luôn đánh tôi như là tỷ lệ cược và nó sẽ là tuyệt vời để có thể bắt chúng. –