Мой вопрос здесь довольно прост: я хочу знать, пытаются ли процессоры как-то помочь в обработке исключений. Возможно ли полностью исключить накладные расходы при обработке и отбрасывании исключений, если приложить достаточные усилия для разработки процессора, «готового к исключению»?
Потому что, насколько я знаю, вся обработка исключений осуществляется с помощью программного обеспечения, и это всегда добавляет некоторые накладные расходы. Я не прав?
- редактировать
Итак, спасибо за ответы ниже. Я ценю. Вы ответили на мой вопрос.
Но просто чтобы прояснить, почему я спросил это: обычно люди не слишком углубляются в оптимизацию исключений, потому что все они думают, что «исключения являются исключительными обстоятельствами», и поэтому они не являются узким местом.
Я не думаю, что исключения должны создаваться только при драматических обстоятельствах. По сути, я считаю, что исключение следует создавать каждый раз, когда функция не может выполнить то, что обещала.
Если я скажу:
doSomethingImportant();
И если по по любой причине "что-то важное" не может быть сделано, это должно вызвать исключение.
Конечно, doSomethingImportant () может не соответствовать, потому что системе не хватает памяти (серьезная проблема), но я думаю, что мы должны быть в состоянии моделировать проще: «Я не могу сделать это сейчас / в этот раз, извините »в наше программное обеспечение, встроенное в наши проекты. Я хотел бы сказать, что я думаю, что исключения могут быть исключительными, да, но они должны ожидаться как нормальный программный поток, а не как «фатальная ошибка», из которой система должна «восстановиться», nomsain
И хотя большие приложения, поддерживаемые хорошими центрами обработки данных, вряд ли когда-либо станут узким местом из-за обработки исключений, не забывайте, что существует рынок для встроенных устройств, где подсчитываются ресурсы, и обработка исключений оказывает влияние ( к чему я стремлюсь).
Лично я нахожу исключения довольно выразительными, и я хотел бы использовать их во встроенных устройствах с такими большими «накладными расходами», какие я получил бы, возвращая «-1» и проверяя это с помощью «если».