Я первоначально согласился с Вами, поскольку я всегда выступал за контролируемые исключительные ситуации и начинал думать о том, почему мне не нравится не иметь контролируемых исключительных ситуаций в .NET. Но тогда я понял, что не заражаю как контролируемые исключительные ситуации.
Для ответа Вы подвергаете сомнению, да, мне нравится, когда мои программы показывают отслеживания стека, предпочтительно действительно ужасные. Я хочу, чтобы приложение взорвалось в ужасную "кучу" самых ужасных сообщений об ошибках, которые Вы могли когда-либо хотеть видеть.
И причина то, потому что, если она делает это, я должен зафиксировать ее, и я должен зафиксировать ее сразу же. Я хочу знать сразу, что существует проблема.
, Сколько раз Вы на самом деле обрабатываете исключения? Я не говорю о ловле исключений - я говорю об обработке их? Слишком легко записать следующее:
try {
thirdPartyMethod();
} catch(TPException e) {
// this should never happen
}
И я знаю, что можно сказать, что это - плохая практика, и что 'ответ' должен сделать что-то за исключением (позвольте мне предположить, зарегистрировать его?), но в Реальном мире (TM), большинство программистов просто не делает этого.
Так да, я не хочу ловить исключения, если я не должен делать так, и я хочу, чтобы моя программа аварийно завершилась эффектно, когда я завинчиваю. Тихо сбой является худшим возможным результатом.
Вам необходимо объявить пространство имен в вашем XSLT и использовать его в выражениях XPath. Например:
<xsl:stylesheet ... xmlns:my="http://www.mysite.com">
<xsl:template match="/my:MyRoot"> ... </xsl:template>
</xsl:stylesheet>
Обратите внимание, что вы должны предоставить некоторый префикс, если хотите ссылаться на элементы из этого пространства имен в XPath. Хотя вы можете просто выполнить xmlns = "..."
без префикса, и он будет работать для буквальных элементов результата, он не будет работать для XPath - в XPath имя без префикса всегда считается в пространстве имен с пустым URI, независимо от xmlns = "..."
в области.