Vikhrmodels/habr_qa_sbs huggingface dataset:
Вопрос: В чем отличие полиморфизма от реализации интерфейса?

Лучший ответ:
Тут, на самом деле, необходимо чётко определить границы. 
Есть ООП как парадигма программирования. Одна из концепций ООП называется полиморфизм. Существуют различные реализации этой концепции в языках программирования. 
В C++ есть несколько реализаций полиморфизма. Вам, на данном этапе, скорее всего интересен только полиморфизм, основанный на подтипах. Это означает, что вызывающий код может работать с набором типов из определённой иерархии, без знания о том, какой это конкретно но тип: базовый или подтип.
Касательно интерфейсов: в C++ их нет на уровне языка, как отдельной сущности. Однако же разница между интерфейсом и абстрактным классом никуда не делась.
Пример "обычного полиморфизма":// Это "интерфейс", который представляет собой набор операций, которые можно произвести над объектом
// В данном случае, по объекту можно постучать
class IKnockable {
public:
    virtual ~IKnockable() = 0;

    // Само по себе действие: "постучать"
    virtual void knock() const = 0;
};

// Реализация интерфейса классом Door
class Door : public IKnockable {
public:
    // ...
    void knock() const override { std::cout << "door" << std::endl; }
    // ...
};

// Реализация интерфейса классом Window
class Window : public IKnockable {
public:
    // ...
    void knock() const override { std::cout << "window" << std::endl; }
    // ...
};

// ...

// Какая-то функция, которая может постучать  по каждому объекту из списка, 
// не имея представления о том, что же это за объект
void knock(const std::vector<std::shared_ptr<IKnockable>> &knockableObjects) {
    for (auto &&knockableObject : knockableObjects) {
        knockableObject->knock();
    }
}

// ...

std::vector<std::shared_ptr<IKnockable>> v = {std::make_shared<Door>(), std::make_shared<Window>()};
knock(v); // Сначала напечатает "door", потом напечатает "window"
Ответ на ваш изначальный вопрос: это понятия из разных областей, одно из теории типов, другое из языков программирования. Интерфейс -- это одно из средств в языках программирования, для реализации определённого типа полиморфизма.

Худший ответ:
Полиморфизм - это создание дочерних классов, каждый из которых является разновидностью базового.
Реализация интерфейса всего лишь означает, что класс умеет давать ответы на некоторый набор вопросов. При этом являться он может быть чем угодно.
Например, класс офисной мебели может иметь подклассы - стулья и столы, каждый из которых является мебелью. При этом любой предмет в офисе должен реализовать интерфейс инвентаризации - выдавать свой инвентарный номер, чем бы он ни являлся.
Вопрос: Почему на Iphone переносится текст на следующую строку после изображения?

Лучший ответ:
Сделай изображению float: left, либо display: inline-block

Худший ответ:
Потому что вы применяете флекс к summary
https://github.com/philipwalton/flexbugs#flexbug-9
p.s. и замените img на фон или контент у псевоэлемента.
Вопрос: Как убрать приписку домена при входе?

Лучший ответ:
Не возможно по дизайну 
Впрочем можете извратится и написать пакет авторизации msgina  но это решение так себе

Писал такую штуку для входа через rfid если есть желание скину

Худший ответ:
Можно сделать на компьютере локального пользователя, заходить под именем .\локальный_пользователь. Но все используемые службы всё равно будут просить доменного пользователя, и его прийдется указывать, так что от этого никуда не деться.

P.S. И вроде же Windows убирает имя домена из имени пользователя, пишет внизу текущий домен... Пишете просто имя, и вперёд!
Вопрос: Как ограничить пользователей VPN (pptp,l2tp) на mikrotik RB2011?

Лучший ответ:
Предположим, что пользователь подключившийся по vpn получил адрес 10.1.6.15, другие пользователи так же получают адреса из 10.1.6.0\24.
Попробуйте сделать правило в цепочке forward, action=drop, src-address=10.1.6.0/24, dst-address=10.1.6.0/24
Чуть выше него поставить правило forward, action=accept, src-address=10.1.6.0/24, dst-address=10.1.6.1 (где 10.1.6.1 это адрес шлюза для пользователей).
Таким образом мы будет резать весь трафик из шестой подсети в шестую подсеть, кроме трафика из шестой к шлюзу.
Если нужно ограничить еще дополнительно все остальные кроме второй, тогдаchain=forward, action=drop, src-address=10.1.6.0/24, dst-address=!10.1.2.0/24
Честно, я не пробовал так делать, но в теории должно сработать. Может знатоки packet flow diagram меня поправят

Худший ответ:
Может раздавать клиентам псевдоподсети /32 ?
Вопрос: После перезагрузки пк brackets перестал читать html файл?

Лучший ответ:
Пользуйся редакторами, которые не херят файлы при выключении. Еще можешь попробовать в  проводнике правый клик по файлу - восстановить предыдущие версии. 
Учитывая ситуацию, усвой урок, делай бекапы, используй git и пиши разметку заново.

Худший ответ:

notepad выдает такое
Вопрос: Как получить права на редактирование файла через FTP?

Лучший ответ:
Все системные файлы редактируются ТОЛЬКО по ssh. ФТП нужен только чтобы загрузить\скачать файлы.
Все настройки так же делаются по ssh. Для удобства просмотра папок и файлов поставьте себе на сервер "mc"

Худший ответ:
Все системные файлы редактируются ТОЛЬКО по ssh. ФТП нужен только чтобы загрузить\скачать файлы.
Все настройки так же делаются по ssh. Для удобства просмотра папок и файлов поставьте себе на сервер "mc"
Вопрос: Может ли контент уменьшаться в размерах при адаптивной верстке?

Лучший ответ:
Да, но это дичь. 
У вас был шрифт 16px, а станет 11px на айпаде? Лупы в комплекте идут? 
Забыли еще 1440/1280 — самые ходовые ноутбучные размеры экранов.

Худший ответ:
да.
Вопрос: Изучение/Как создать рамку в Wordpress? Какие CMS системы посоветуете?

Лучший ответ:
Рамка делается на css

Для изучения WordPress: 
https://codex.wordpress.org/ 
https://wp-kama.ru/
https://www.udemy.com/course/become-a-wordpress-de...

Худший ответ:
Это делает не Wordpress/Bitrix/Opencart и так далее. Это основы css.
Все cms хорошие, но для разных целей. Без знания структуры сайта, основ html и css - любая платформа будет сковывать движение.  На одни плагинах далеко не уехать. Тут или самостоятельно вникать или нанимать it-специалиста.
Вопрос: Как сделать ввод максимального числа в поле input но не меньше минимального значения с помощью jq?

Лучший ответ:
Тостер превратился в ресурс для решения домашних задачек для школьников

Худший ответ:
Ну к примеру можно так!
Сыроват конечно пример, но все же. Дальше сами доработаете.<input type="text" id="min" placeholder="min">
<input type="text" id="max" placeholder="max">
<p class="text"></p>$('#max').change(function(){
	let min = parseInt($('#min').val())
  let max = parseInt($('#max').val())
	if (max < min) {
  	$('.text').html('введите число больше минимума')
        $('#max').val('')
  } else {
  	$('.text').html('пойдет!')
  }
})
Вопрос: Почему до клиентов не доходит рассылка из битрикса?

Лучший ответ:
домен не явяется СЕКРЕТНЫМ чекисты блин. вы за его знания деньги яндексу платите. 
И  как следствие айпи тоже.
А вот чинить ваши проблемы без должной информации становится сложнее.
https://mxtoolbox.com/emailhealth/
закидывай сюди смотри что даст

Как у вас построен веб сервер это тоже загадка, хоть бы сказали у вас Битрикс ВМ или нет ( у вм внешний почтовкик)
Если локальный то вам нужно изменить SPF не редирект а инклуд.
v=spf1 ip4:IP-1 ip4:IP-2 ip4:IP-3 include:_spf.yandex.net ~all

Худший ответ:
Почему до клиентов не доходит рассылка из битрикса?
Я вам больше скажу - и в будущем не будет доходить, сейчас всё делается для того, чтобы вынудить потенциальных клиентов переходить на коммерческие инструменты для массовой рассылки. Не хотите попадать в спам базы и нужно видеть нормальную статистику и планирование писем, то действительно имеет смысл на этапе проектирования задуматься над этим.
У меня все проекты переведены на сторонние сервисы рассылки, включая уведомления.
В вашем случае не настроены dmarc, soa, mx
Вопрос: Как организовать корпоративный сервер?

Лучший ответ:
Составить план
Согласовать с начальством
Просмотреть лицензии если что нужно докупить
Открытый сервер в интернет бред поэтому поставьте хотя бы микротик ну или подержанную циску 
Развернуть виртуальную машину и в ней поставить Lts Ubuntu 
На роутере настроить проброс портов и заизолировать сегменты сети
Пс любить любите но делай что нужно бизнесу

Худший ответ:
1)На столько ли легко будет открыть виртулку в сеть чтобы там делать web сервер (proxmox)?
Можно использовать proxmox как firewall, но личный опыт показа что лучше отдельную железку под firewall, например микроток. 
2)Организовать RAID средством материнки или средствами proxmox ?
Proxmox уже давно при установке предлагает zfs, можно вынести журнал zfs на ssd, для Linux контейнеров будет норм.
3)Допустим у меня появились еще IP белые, смогу ли я их легко раскидать по виртуалкам (если все идет по 1 кабелю) ?
Как и первый вопрос - ответ ДА, но лучше отдельную железку.

Личный опыт
ЦП: I7
RAM: 32 GB
HDD - 3 шт по 1 трб
SSD nvme 256 Samsung

Все это дело уже живет 4 года, и не одного падения. Нашёл патч который позволяет активировать на proxmox diff бекапы. 
Zfs, два диска в зеркале, на них гипервизор, один диск под бекапы. Ssd купил год назад т.к. 1с-ка переехала на sql и zfs перестал справляться, на ssd находятся windows контейнеры. Ранее Linux контейнер был в роли firewall, gw ,dhcp. Если контейнер с firewall не стартанул - доступа к машинкам нет, поэтому заменил его на железный MikroTik. Подключил бесперебойник, через usb настроил выключен ВМ при отключении электричества.
Вопрос: Как реализовать мониторинг микротиков через vpn?

Лучший ответ:
Ну у меня так и сделано...
Стоит центр микрик в облаке. к нему цепляются по ВПН микрики заказчиков... подключаюсь к ним по ВПН адресам. 
в фаерволле подключение разрешаете из под своей ВПН сети и всё... никаких сложностей
Чтобы "видеть" остальные - не настраивал, для этого надо разрешить свободное хождение пакетов по сети. Я просто подключаюсь по IPшникам. и конечно вижу их все во вкладке ВПН клиентов на центр микрике

Худший ответ:
Все зависит от того как настроите

Вот смотрите  соседей вы увидите только в одном сегменте.  Если же роутеры видят друг друга и не задавлены порты то подключится сможете
Вопрос: Как связать 3 карусели swiper на странице?

Лучший ответ:
Вот так. Смысл в том, что вы подписываетесь на событие смены слайда, а затем все слайдеры через 1 функцию перелистываете на тот же индекс слайда, как и у того слайдера, который только что изменил свой индекс.
snippet

Худший ответ:
Kак связать между собой 3 слайдера swiper?
Вопрос: Java junior, серверное ПО, какие задачи решать, чтоб понять устройство системы?

Лучший ответ:
Хороший код приходит с опытом, проблематично целенаправленно учиться писать хороший код, это все равно как целенаправленно учить опыт.
В этом плане нужно просто понимать почему что делается.

А так - направление это совместная работа. Понимать весь цикл разработки. Как предсказуемо оценивать сроки задачи, как их правильно дробить, как взаимодействовать с другими разработчиками или командами.
Все инструменты, с которыми сталкиваешься - старайся добиться, чтобы работало, потом интересуйся как это работает. Таже кафка - что она вообще умеет. Тот же ELK стек - можно научиться парсить логи чтобы искать нужные вещи, а можно в самом приложении поправить логгер, чтобы он в ЕЛК отправлял более удобные для парсинга данные. И так с каждым сервисом/технологией - ты как разработчик и со стороны приложения можешь менять и со стороны сервиса можешь смотреть что от него взять можно.

Худший ответ:
Если уже есть небольшой опыт работы со спрингом, то советую посмотреть "Spring-потрошитель" (2 части) от Евгения Борисова на ютубе. Он хорошо объяснил как спринг устроен изнутри. Магии много, на разобраться можно.

После этого можно начинать читать документацию по интересующим модулям спринга. Она обычно очень подробная и понятная. Вот например документация по Spring Jpa.

После этого попробуйте с нуля написать какое-нибудь простое приложение на спринге не используя туториалы, quick-старты и spring initializr, только maven/gradle (смотря что у вас в команде используется) и документация. Скажем, 3 пользовательских роли (админ, пользователь, аноним), 3 эндпоинта: 1 доступен для всех, 1 доступен админу и пользователю, 1 доступен только админу. Для начала пользователей можно захардкодить. Потом прикрутить постгрес для их хранения, потом прикрутить эластик для логов и т.п. 
После этого добавить несколько тестов, причём как тестов, которые напрямую дёргают методы сервисов и репозиториев, так и тесты, которые эмулируют пользователя: отправляют http-запросы на вход в систему, а потом дёргают эндпоинты и проверяют, что ограничения эндпоинтов по ролям работают правильно.

Всё это желательно без туториалов, просто ищете название нужного спринг-модуля, открываете его референс-документацию и по ней работаете.

За пару недель не спеша сделать вполне реально. После этого, если есть возможность, попросите кого-нибудь более опытного посмотреть код и сказать, что и как стоит исправить, желательно с пояснением почему.

Понимание рекурсии и базовых алгоритмов полезно, но в корпоративном сегменте это будет встречаться не часто: бизнес процессы в большинстве случаев будут расписаны либо бизнес-аналитиком, либо самим заказчиком, а большинство структур данных и алгоритмов работы с ними уже доступны в стандартной библиотеке, Apache Commons Lang 3 и Google Guava.
Вопрос: Как подключить скрипт через functions.php на wordpress?

Лучший ответ:
Вы можете сделать зависимость от основного скрипта с помощью wp_add_inline_script()

add_action('wp_enqueue_scripts', function() {

	wp_enqueue_script( 'my_scripts', get_stylesheet_directory_uri() .'/my_scripts.js' );
	wp_add_inline_script( 'my_scripts', '$(\'.selectpicker\').selectpicker();' );
	
});

/* Получим в HTML коде
<script type='text/javascript' src='http://example.com/wp-content/themes/mytheme/my_scripts.js'></script>
<script type='text/javascript'>
$('.selectpicker').selectpicker();
</script>
*/

Худший ответ:
https://digwp.com/2019/07/better-inline-script/
это если надо через функции заинлайнить.
Если не через функции, то я обычно пользую механизм произвольных полей, у меня всегда есть места для подключения скриптов в HEAD, после открывающего тега BODY и перед закрывающим тегом BODY, что нужно для подключения метрик и всяких скриптов, дабы не лазить в функции и чтобы заказчик или менеджер мог это делать из админки
Вопрос: Как войти в режим суперпользователя?

Лучший ответ:
команда su выполняет переход под рута
su -
и вы рут. При этом запрашивается пароль рута

команда sudo позволяет выполнять другие команды от имени рута, при этом запрашивается пароль пользователя.

Т.е.
su -
вводим пароль рута 
и становимся рутом из под любого пользователя

если пароля рута нет или он неизвестен - настраивайте sudo

Худший ответ:
Если это требуется и это дозволено - просто добавьте dom в sudoers.
Вопрос: Как собирать документы с сайта?

Лучший ответ:
у многих новостных ресурсов есть rss. Можно его запрашивать на nodejs, парсить и складывать в облоко.
Если парсить страницы, то можно воспользоваться https://github.com/GoogleChrome/puppeteer

Худший ответ:
в rss обычно кладут первые пару строчек статьи, как раз чтобы нельзя было спарсить оттуда полную статью без рекламы :)
Андрей Ермаков посмотри связку node.js, request and cheerio, если через ноду
https://www.digitalocean.com/community/tutorials/h...
https://itnext.io/scraping-with-nodejs-and-cheerio...
request принесет html страницы, с помощью cheerio можно легко разобрать блоки с контентом по css-селекторам
puppeteer и прочие "безголовые браузеры" для такого обычно не нужны
Вопрос: Много ли ресурсов требует jQuery?

Лучший ответ:
JS прожорлив сам по себе, так что не использовать jQuery это как не брать колу, заказав 15 гамбургеров, пушо в ней сахару много.

Худший ответ:
Не используйте jQuery. У вас же супермегапроект, на который заходит миллионы человек. Поставите jQuery, сайт сразу накроется.
Вопрос: Как в python вывести текст на рабочий стол?

Лучший ответ:
Ты можешь использовать любой фреймворк для создания окна, но проблема будет именно с расположением. Если речь о Windows, то есть два возможных подхода.

1. Обрабатывай сообщения о перемещении окна, блокируй любые перемещения, ставь окно в самый низ стопки окон. Используй функцию WinAPI SetWindowPos().

2. Используя функцию WinAPI SetParent(), установить своё окно как дочернее для рабочего стола. Нужно найти дескриптор окна рабочего стола через FindWindow().

Проблема в том, что доступ к WinAPI через питон возможен, но очень неудобен. Также тебе придётся как-то узнать у твоего выбранного фреймворка дескриптор твоего окна.

Худший ответ:
Во первых вопрос не до конца конкретизирован.

Во вторых:
1). При помощи любой графической библиотеки создаём изображение, внося на него текст из переменной (Для этой цели может сойти и PIL)
2). Ставим картинку на рабочий стол. (В Гугле есть нужные библиотеки и примеры)
Вопрос: Как портировать линуксовое консольное приложение под Windows?

Лучший ответ:
Скорее всего надо запустить компиллятор и оценить масштаб трагедии. И после этого писать новое сообщение в тостер.

Я сильно сомневаюсь в наших "прогнозах" здесь в условиях отсутствия информации.

Худший ответ:
Попробуйте собрать через TDM-GCC на Windows.
Вопрос: Стоит ли соглашаться на работу?

Лучший ответ:
Я думаю, что стоит. Года должно хватить, тем более, если дело передадут.
Вряд ли там будет чистый Ассемблер, скорее, Си.
В общем, если нет ничего лучше, то, конечно, стоит пойти.

Худший ответ:
Нет не стоит идти. 
Как правило вендинги зачастую подключены к системе биллинга третьих лиц, которые делают за вас всю работу. Вам же скорее всего придётся дёргать свистки, менять приёмник купюр, батарейки мат. плат, настраивать BIOS и т.п. Ничего общего с языками ассемблера там нет, стоит скорее всего какая нибудь винда или убунта, с драйверами на тачскрин, модем, и т.п. Пойдите убедитесь, стажировки как правило в таких компаниях двухнедельные, гарантирую, вы за 1 день научитесь работать, если знаете что вообще такое языки ассемблера, и врядли вы захотите там остаться. Предыдущий "мастер" не просто так оттуда уходит.
Вопрос: Замена, ссылок?

Лучший ответ:
Создайте 1 php файл, где будут нужные вам ссылки в переменный, например $vk = 'https://vk.com';
$fb = 'https://facebook.com';
На всех ваших лендингах в самом верху подключите этот php с помощью include
Ну и в лендингах будет что-то типо <a href="<?php echo $vk;?>"> МЫ В ВК </a>

Худший ответ:
Такой файл можно делать, но какой в этом смысл? В WP очень удобно можно добавить custom_fields для того чтобы на странице "Настроек" изменять ссылки на соц.сети, а для того чтобы отобразить/использовать нужную ссылку используйте шорт-код, при этом происходит стандартная и простая, а главное понятная работа с БД.add_shortcode()Шорткодыcustom fields
Вопрос: Bitlocker — утерян пороль, можно вытащить данные?

Лучший ответ:
Битлокер это система шифрования данных.
Применяется для того чтобы не знающий пароля человек не мог получить доступ к данным.
Любая система такого уровня гарантирует что данные без пароля вытащить невозможно, иначе ей просто нет смысла пользоваться.

Поэтому способ один - вспомнить пароль.

Худший ответ:
Если был выполнен вход в учетную запись MS и пароль от неё известен - можно там взять ключ восстановления. Других путей нет.
Вопрос: Как протестировать производительность функций начинающему php-разработчику?

Лучший ответ:
Как абсолютно верно заметил Роман Юрьевич Ипатьев, проблема не в вызове аргументов, а в абсолютно нелогичном подходе к архитектуре, которая тут просто швах... 

Просто на будущее - архитектура в разы важнее скорости исполнения, так как ресурсов всегда можно накинуть, а с кривой архитектурой ни поддержка, ни нормальная работа невозможна. Вы экономите 2 байта на каких-то мелких манипуляциях через Ж, при этом в коде совершенно невозможно разобраться, а любая модификация функционала может уронить весь проект или заставить менять код в 40 местах.

Файл RouteController.php обрабатывает URL уже плохо, контроллер не должен знать что-то про урл и прочие переменные извне. Для этого есть роутер и реквест.

и делает вывод о типе контроллера (гость, авторизованный пользователь или администратор).Как тип контроллера соотносится с ролью пользователя?

Создаёт объект этого контроллера и отправляет в него аргументами (str)имя контроллера и (str) полученный URL.У вас же уже вызван контроллер, RouteController.php, либо он не контроллер, либо зачем тогда снова контроллер создавать? И зачем ему урл?

Эти аргументы попадают в родительский контроллер файла Controller.php и оттуда далее используются в условном ветвлении и передаются в соответствующие функции, где дальше из этих функций опять передаются в нужные функции.Сложнааа, слоожжнаа (с) Карина. Очень запутанно и очень странно работает ваша творческая мысль. 

На самом деле все проще и сложнее одновременно. Понимаю что на основе разрозненных "слышал звон" вы попытались создать что-то свое, в надежде создать лучшее светлое будущее для всех, но, короче, ничего не получилось. 

Про то как оно примерно должно работать рассказывать наверное не стоит, чтобы не смутить ваш творческий  поиск готовыми решениями. Если будет интересно - Дмитрий скинул вам замечательный курс от Елисеева, прям рекомендую.

Худший ответ:
Скрипт для тестирования времени и затрат памяти во...
Вопрос: Как верстается страница с пошаговым оформлением заказа?

Лучший ответ:
Такие вещи как корзина нужно согласовывать с бэкэнд-программистом. У него может быть CMS c готовым модулем, который вам нужно перестилизовать. А может он любую разметку прикрутить готов.
Удаление товара может быть реализовано как с перезагрузкой страницы. так и аякс-запросом. Это тоже нужно уточнять.
Для подсчета стоимости вам нужны данные — цена и количество, и возможно скидки. Также нужно согласовать, каким образом вы будете получать эти данные, в дата-атрибутах, отдельным объектом на странице или аякс запросом.

А может от вас просто требуется статичная верстка. =))
В общем, не по адресу вопрос задаете. Обговаривайте это с заказчиком или коллегами.

Худший ответ:
Вам нужно взять любую CMS которая работает по MVC, и посмотреть код корзины(страницы заказа).
Допустим тот же самый opencart - каждый отдельный пункт заказа подключен к основной страницы отдельным шаблоном, и под каждый отдельный шаблон пишется свой визуал, и логика.

Вы можете её сверстать полностью, а потом уже раскидывать по шаблонам, которые будут переходить в нужное состояние с помощью системы роутинга.
Вопрос: В URL при роутинге не получается передать массив, что делать?

Лучший ответ:
localhost/marketAJAX/index/gender[]/Мужские/gender[]/Женские /material[]/Сталь/from/5000/
Какой ужас. Так ?gender[]=Мужские&gender[]=Женские  делать правильно

Худший ответ:
Делайте в POST
Вопрос: Почему инициализация целочисленного указателя 0 или NULL не вызывает предупреждений, хотя 0 — это целочисленная константа?

Лучший ответ:
0 в таком контексте — особая указательная константа для указателей в никуда, по стандартам не обязательно указывающая на нулевой адрес.
Целочисленной константой ноль был бы в выражении
int *p = (int)0;

Худший ответ:
Вы присваиваете значения указателю. Указатель хранит адреса. Т.е. вы записываете в переменную адрес, на который она должна указывать. Поэтому обычно присвоение какого-то целого числа указателю - это ошибка, ведь вы не можете знать что там за адреса у вас в программе нужны. Если же вы какой-то адрес откуда-то взяли, то он и был бы уже типом указателя. Отсюда и предупреждение компилятора. Довольно часто присвоения указателю целого числа - это пропущенное разыменование указателя.

Но 0 - исключение. Потому что нулем принято обозначать пустой, ни на что не указывающий указатель. Обычно для этого в C используют NULL, чтобы разделять число 0 и пустой указатель в коде. Но NULL, фактически и есть 0.

Компилятор ничего не приводит, а просто игнорирует присвоение 0, ибо это нормальная ситуация.
Вопрос: Как организовать обработку исключений set_exception_handler() для их красивого вывода пользователю?

Лучший ответ:
Нет нельзя. set_exception_handler вызывается после того как происходит необработанное исключение, контекст, естественно, прерывается.

Худший ответ:
Долбить везде try/catch/finally.