Смотрите на http://www.maintainj.com
, Это не знает, может ли это отфильтровать вызовы библиотеки, но это имеет разумный графический фронтэнд и, кажется, прослеживает даже очень крупные приложения.
ОБНОВЛЕНО: предполагая C # 6 , есть вероятность, что ваш случай может быть выражен как фильтр исключений. Это идеальный подход с точки зрения производительности, если предположить, что ваше требование может быть выражено в его терминах, например:
try
{
}
catch ( Web2PDFException ex ) when ( ex.Code == 52 )
{
}
Предполагая, что C # <6, наиболее эффективным является перехват определенного типа Exception
и обработка на основе на что. Любую комплексную обработку можно выполнить отдельно
try
{
}
catch ( Web2PDFException ex )
{
}
или
try
{
}
catch ( Web2PDFException ex )
{
}
catch ( Exception ex )
{
}
или (если вам нужно написать общий обработчик - что обычно является плохой идеей, но если вы уверены, что это лучше для вас, вы уверены) :
if( err is Web2PDFException)
{
}
или (в некоторых случаях, если вам нужно сделать более сложную структуру иерархии типов, которая не может быть выражена с помощью is
)
if( err.GetType().IsAssignableFrom(typeof(Web2PDFException)))
{
}
или переключитесь на VB.NET или F # и используйте
или Тип. IsAssignableFrom
в фильтрах исключений
try
{
// Some code
}
catch (Web2PDFException ex)
{
// It's your special exception
}
catch (Exception ex)
{
// Any other exception here
}
Вы всегда должны перехватывать исключения как можно более конкретно, поэтому вы должны использовать
try
{
//code
}
catch (Web2PDFException ex)
{
//Handle the exception here
}
Вы, конечно, можете использовать что-то вроде этого, если вы настаиваете:
try
{
}
catch (Exception err)
{
if (err is Web2PDFException)
{
//Code
}
}
вы можете добавить некоторую дополнительную информацию к вашему исключению в вашем классе, а затем, когда вы поймаете исключение, вы можете управлять своей пользовательской информацией, чтобы идентифицировать ваше исключение
this.Data["mykey"]="keyvalue"; //you can add any type of data if you want
, а затем вы можете получить свое значение
string mystr = (string) err.Data["mykey"];
для получения дополнительной информации: http://msdn.microsoft.com/en-us/library/system.exception.data.aspx
У вас есть машина с Windows или Linux?
В Windows cron называется «Запланированные задачи». Он находится в Панели управления. Вы можете настроить запуск нескольких скриптов в указанное время на панели управления. Используйте мастер, чтобы определить запланированное время. Убедитесь, что PHP вызывается в вашем PATH.
В Linux вы можете создать crontab для вашего текущего пользователя, набрав:
crontab -e [username]
Если эта команда завершится неудачно, вероятно, что cron не установлен. Если вы используете систему на основе Debian (Debian, Ubuntu), попробуйте сначала выполнить следующие команды:
sudo apt-get update
sudo apt-get install cron
Если команда выполняется правильно, откроется текстовый редактор. Теперь вы можете добавить командные строки в файл crontab. Чтобы запускать что-то каждые пять минут:
*/5 * * * * /home/user/test.pl
Синтаксис в основном такой: