Это достаточно просто с PowerShell. Код сравнивает длину исходной строки со строкой с удаленными символами TILDE.
Это можно запустить на любой современной машине с Windows, поддерживаемой cmd.exe. Да, намного проще и чище, если он написан как скрипт PowerShell.
@ECHO OFF
SET "inputFile=.\countds.csv"
powershell -NoLogo -NoProfile -Command ^
"Get-Content -Path '%inputFile%' |" ^
"ForEach-Object {" ^
"$ns = Это достаточно просто с PowerShell. Код сравнивает длину исходной строки со строкой с удаленными символами TILDE.
Это можно запустить на любой современной машине с Windows, поддерживаемой cmd.exe. Да, намного проще и чище, если он написан как скрипт PowerShell.
[110] -replace '~','';" ^
"if (( Это достаточно просто с PowerShell. Код сравнивает длину исходной строки со строкой с удаленными символами TILDE.
Это можно запустить на любой современной машине с Windows, поддерживаемой cmd.exe. Да, намного проще и чище, если он написан как скрипт PowerShell.
[110].Length - $ns.Length) -ne 7) {" ^
"'Length is {0}' -f ( Это достаточно просто с PowerShell. Код сравнивает длину исходной строки со строкой с удаленными символами TILDE.
Это можно запустить на любой современной машине с Windows, поддерживаемой cmd.exe. Да, намного проще и чище, если он написан как скрипт PowerShell.
[110].Length - $ns.Length)" ^
"}" ^
"}"
Как правило, метод должен генерировать исключение для вызывающего, если он не может решить связанную проблему локально. Например. если предполагается, что метод читает из файла с заданным путем, IOExceptions
не могут быть обработаны локально разумным образом. То же самое относится и к недопустимому вводу, добавляя, что я лично выбрал бы в этом случае непроверенное исключение, например IllegalArgumentException
.
И он должен перехватить исключение из вызываемого метода, если:
DAO
использует Hibernate
для сохранения моих сущностей, поэтому я перехватываю все HibernateExceptions
локально и конвертирую их в свои собственные типы исключений). Решение добавить в свои методы try-catch или throws зависит от того, «как вы хотите (или имеете) обрабатывать ваше исключение».
Как обработать исключение - это широкий и далеко не тривиальный вопрос. В частности, оно включает решение о том, где обрабатывать исключение и какие действия выполнять в блоке catch. Фактически, как обработать исключение, должно быть глобальным проектным решением.
Поэтому, отвечая на ваши вопросы, эмпирического правила не существует.
Вы должны решить, где вы хотите обработать свое исключение, и это решение обычно очень специфично для вашего домена и требований приложения.
Мое личное практическое правило для этого простое:
try / catch
. Под обработкой этого я подразумеваю возможность информировать пользователя / восстанавливать ошибку или, в более широком смысле, понимать, как это исключение влияет на выполнение моего кода. Примечание: этот ответ теперь является вики-страницей сообщества, не стесняйтесь добавлять дополнительную информацию в.
Вот как я его использую:
Throws:
Try-Catch:
Я знаю много людей, которые всегда используют Throws, потому что это чище, но просто нет такого контроля.
Если метод, в котором возникло исключение, обладает достаточным количеством информации, чтобы справиться с ним, то он должен поймать, сгенерировать полезную информацию о том, что произошло и какие данные обрабатывались.