Exceptions vs Error Codes

In a performance-critical inner loop processing millions of items, a colleague proposes using exceptions to signal expected validation failures (roughly 10% of items fail). What is the main problem with this approach?

A

Exceptions always cause the entire program to terminate, so they cannot be used for recoverable errors

B

C++ exceptions cannot carry custom error information, making diagnosis impossible

C

Throwing and catching exceptions has significant overhead compared to branch-based error handling

D

Exceptions are not supported inside loops, so the compiler will refuse to compile this code