std :: abort và std :: exit (và hơn thế nữa: std :: _ Exit, std :: quick_exit) chỉ là các hàm cấp thấp hơn. Bạn sử dụng chúng để cho chương trình biết chính xác những gì bạn muốn nó làm: hàm hủy (và nếu) sẽ gọi, hàm dọn dẹp nào khác sẽ gọi, giá trị trả về, v.v.
std :: chấm dứt là một trừu tượng cấp cao hơn: nó được gọi (theo thời gian chạy hoặc bạn) để chỉ ra rằng một lỗi trong chương trình đã xảy ra và vì lý do nào đó mà không thể xử lý bằng cách ném một ngoại lệ. Sự cần thiết cho điều đó thường xảy ra khi lỗi xảy ra trong chính cơ chế ngoại lệ, nhưng bạn có thể sử dụng nó bất kỳ lúc nào khi bạn không muốn chương trình của mình tiếp tục vượt quá lỗi đã cho. Tôi đã biên soạn danh sách đầy đủ các tình huống khi std :: end được gọi trong bài đăng của mình. Nó không được chỉ định std :: Term làm gì, vì bạn đang kiểm soát nó. Bạn có thể cấu hình hành vi bằng cách đăng ký bất kỳ chức năng nào. Các hạn chế của bạn là chức năng không thể quay trở lại trang web lỗi và nó không thể thoát ra ngoài thông qua một ngoại lệ, nhưng về mặt kỹ thuật, bạn thậm chí có thể bắt đầu bơm thông báo của mình vào bên trong. Để biết danh sách những điều hữu ích mà bạn có thể làm bên trong, hãy xem bài đăng khác của tôi .
Đặc biệt, lưu ý rằng std :: chấm dứt được coi là một trình xử lý ngoại lệ trong các ngữ cảnh mà std :: chấm dứt được gọi do một ngoại lệ được ném ra không thể xử lý được và bạn có thể kiểm tra ngoại lệ đó là gì và kiểm tra nó bằng cách sử dụng C ++ 11 sử dụng std :: rethrow_exception và std :: current_exception. Đó là tất cả trong bài viết của tôi .