Вчера выполнил все необходимые требования для получения первого в своей жизни сертификата по программированию. Осталось только получить, и можно будет носить гордое звание "SQL Data Manipulation Language Specialist".
Справедливости ради стоит отметить, что это только сертификат первого уровня (Basic knowledge), а для получения "All requirements" нужно еще много работать( для начала проанализировать свои старые решения и попытаться оптимизировать).
Хотя не одна бумага не заменит реального опыта и знаний, но думаю, что иметь пару таких вот документов лишним не будет.
вторник, 27 января 2009 г.
пятница, 9 января 2009 г.
TestExceptions
Эх если бы объединить все вкусности всех языков программирования и всех платформ...
К примеру меня зацепило наличие у .NET'овского эксепшена наличие свойства StackTrace.
Маленький пример на C#
Эх если бы объединить все вкусности всех языков программирования и всех платформ...
К примеру меня зацепило наличие у .NET'овского эксепшена наличие свойства StackTrace.
Маленький пример на C#
Win32 увы врядли так сможет:(
Мальнький примерчик на языке Delphi (я позаимствовал из книги Марку Канту и немного переделал):
P.S. Было бы неплохо приделать к блогу подсветку и нормальное форматирование синтаксиса, а то как-то не красиво выходит
К примеру меня зацепило наличие у .NET'овского эксепшена наличие свойства StackTrace.
Маленький пример на C#
Эх если бы объединить все вкусности всех языков программирования и всех платформ...
К примеру меня зацепило наличие у .NET'овского эксепшена наличие свойства StackTrace.
Маленький пример на C#
using System;
using System.Collections.Generic;
using System.Text;
namespace TestExceptions
{
class Program
{
static void Main(string[] args)
{
try
{
throw new Exception();
}
catch (Exception e)
{
Console.WriteLine("Exception Addr: " + e.StackTrace);
}
Console.ReadKey();
}
}
}
И в качестве адресса я получу сборку, класс, метод и строку, в котором было исключение. Круто?Win32 увы врядли так сможет:(
Мальнький примерчик на языке Delphi (я позаимствовал из книги Марку Канту и немного переделал):
program TestExceptions;
{$APPTYPE CONSOLE}
uses SysUtils;
type
ECustomException = class (Exception)
protected
procedure RaisingException(P: PExceptionRecord); override;
end;
procedure ECustomException.RaisingException(P: PExceptionRecord);
begin
Writeln('Exception Addr: ' + IntToHex (
Integer(P.ExceptionAddress), 8));
// standard processing
inherited;
end;
begin
raise ECustomException.Create('A message');
Readln;
end.
И в качестве результата получим адресс 0040B186h, что мягко говоря не удобно, так как прийдется запускать дебагер и медитировать на ассемблер.P.S. Было бы неплохо приделать к блогу подсветку и нормальное форматирование синтаксиса, а то как-то не красиво выходит