How to properly catch a HTTP error status code when using fetch?

When you use the fetch API in JavaScript and the result contains a status code that isn’t OK (not 2xx), an error that includes the status code and the method is being logged to the console in most browsers (I’ve tried Chrome, Edge and Opera). This makes sense, as this type of response usually means some kind of error on your side.

However this error is also present when using a .catch chain on your Promise (this is the most basic code example):

fetch("<some api call that returns a status code of 400>")
    .catch(_ => {});

This gives the same error in the console as not catching it.

If .catch(_ => {}) does not work, is there a way to suppress this error?