"12".match(/^(\d)+$/) # true
"1.2".match(/^(\d)+$/) # false
"dfs2".match(/^(\d)+$/) # false
"13422".match(/^(\d)+$/) # true
Да, есть разница;
throw ex
сбрасывает трассировку стека (поэтому ваши ошибки будут кажется, происходит из HandleException
) throw
нет - первоначальный нарушитель будет сохранен.
static void Main (string [] args)
{
пытаться
{
Method2 ();
}
поймать (исключение ex)
{
Console.Write (ex.StackTrace.ToString ());
Console.ReadKey ();
}
}
приватная статическая пустота Method2 ()
{
пытаться
{
Method1 ();
}
поймать (исключение ex)
{
// throw ex сбрасывает трассировку стека, полученную из метода 1, и передает ее вызывающей стороне (Main)
бросить экс;
}
}
закрытая статическая пустота Method1 ()
{
пытаться
{
бросить новое исключение («Inside Method1»);
}
поймать (исключение)
{
бросить;
}
}
В функции «Публикация ...» нет ничего волшебного, что вы не могли бы воссоздать самостоятельно, тем более что вы используете сетевой файловый ресурс.
По сути, все, что он делает, это копирует ваши файлы из одного места в другое. Используя NAnt, вы можете выполнить это с помощью задачи copy или использовать задачу exec для вызова xcopy Если вы используете инструмент сборки, отличный от Нет, я уверен, что есть поддержка подобных задач.
Если вы хотите оставить исходный код и отладочную информацию позади, вы можете исключить файлы, заканчивающиеся на .cs или .pdb. И NAnt copy, и xcopy предоставляют простые способы сделать это.
не номер строки вызова DivByZero ()
, что, вероятно, имеет смысл сейчас, когда я немного об этом думаю ...
Исключение 1:
at ConsoleAppBasics.Program.ThrowException1()
at ConsoleAppBasics.Program.Main(String[] args)
Исключение 2:
at ConsoleAppBasics.Program.ThrowException2()
at ConsoleAppBasics.Program.Main(String[] args)
Поддерживает ли исходный stackTrace только в режиме отладки?
Нет, это приведет к тому, что у исключения будет другая трассировка стека. Только использование броска
без какого-либо исключения в обработчике catch
оставит трассировку стека без изменений.
Возможно, вы захотите вернуть логическое значение из HandleException, независимо от того, будет ли исключение переброшено или нет.
Когда вы бросаете ex, то выброшенное исключение становится «оригинальным». Таким образом, вся предыдущая трассировка стека не будет.
Если вы бросите, исключение просто пойдет по линии , и вы получите полную трассировку стека.