C ++ feraiseexcept () - Thư viện chuẩn C ++

Hàm feraiseexcept () trong C ++ cố gắng nâng cao tất cả các ngoại lệ dấu phẩy động được chỉ định bởi đối số.

Hàm feraiseexcept () được định nghĩa trong tệp tiêu đề.

nguyên mẫu feraiseexcept ()

 int feraiseexcept (int exceptions);

Các ngoại lệ dấu chấm động được nêu ra được liệt kê trong các ngoại lệ đối số.

Ngoài ra, bạn nên bật FENV_ACCESS , điều này sẽ cung cấp cho chương trình của bạn quyền truy cập vào môi trường Dấu chấm động để kiểm tra các ngoại lệ được nêu ra.

tham số feraiseexcept ()

  • ngoại lệ: Bitmask liệt kê các cờ ngoại lệ cần nâng.
Bitmask chấp nhận macro
Macro Kiểu Sự miêu tả
FE_DIVBYZERO Lỗi cực Chia cho số không
FE_INEXACT Không liên hệ Kết quả không chính xác như (1.0 / 3.0)
FE_INVALID Lỗi tên miền Ít nhất một đối số được sử dụng là một giá trị mà hàm không được xác định
FE_OVERFLOW Lỗi phạm vi tràn Kết quả có độ lớn quá lớn để được biểu thị bằng kiểu trả về
FE_UNDERFLOW Lỗi phạm vi dòng chảy dưới Kết quả có độ lớn quá nhỏ để được biểu thị bằng kiểu trả về
FE_ALL_EXCEPT Tất cả các trường hợp ngoại lệ Tất cả các trường hợp ngoại lệ được hỗ trợ bởi việc triển khai

feraiseexcept () Giá trị trả về

  • Hàm feraiseexcept () trả về giá trị bằng 0 nếu tất cả các ngoại lệ được chỉ định bởi các ngoại lệ được nâng lên.
  • Nếu không, nó trả về một giá trị khác không.

Ví dụ: Cách hoạt động của hàm feraiseexcept ()

 #include #include #pragma STDC FENV_ACCESS ON using namespace std; int main() ( int retVal; feclearexcept(FE_ALL_EXCEPT); retVal = feraiseexcept(FE_OVERFLOW | FE_INVALID); if (retVal == 0) cout << "Successfully raised FE_OVERFLOW and FE_INVALID" << endl; else cout << "Raising FE_OVERFLOW and FE_INVALID failed" << endl; return 0; )

Khi bạn chạy chương trình, đầu ra sẽ là:

 Đã huy động thành công FE_OVERFLOW và FE_INVALID

thú vị bài viết...