Re: дурдом
От: kov_serg Россия  
Дата: 08.04.25 12:08
Оценка: +1
Здравствуйте, undo75, Вы писали:

U>короче стремная контора

U>на меня сыпют инцеденты.
U>куча проектов. половина не собирается. везде говнокод типа
U>
U>try
U>{
U>// куча кода
U>}
U>catch()
U>{
U>// тут кода нет
U>}
U>

Заведи вспомогательный класс
  типа AppHelper
    public class AppHelper {
        static string shortfilename(string fn) { return fn==null ? "" : Path.GetFileName(fn).ToLower(); }
        static public void log(string fmt, params object[] args) {
            Console.WriteLine(fmt, args);
        }
        static public Func<Exception, string, bool> hook_filter = null;
        static public Action<Exception, string> hook_rethrow = null;
        static string get_location(Exception e) {
            string loc = "";
            var st = new StackTrace(e, true);
            if (st.FrameCount > 0) {
                var f = st.GetFrame(0);
                var m = f.GetMethod();
                loc = String.Format("{0}:{1}:{2} {3}.{4}",
                    shortfilename(f.GetFileName()), f.GetFileLineNumber(), f.GetFileColumnNumber(),
                    m.ReflectedType.FullName, m.Name
                );
            }
            return loc;
        }
        static public void exception(Exception e, string reference) {
            bool skip = false;
            var filter = hook_filter;
            if (filter != null) skip = filter(e, reference);
            if (skip) return;
            var st = new StackTrace(true);
            log("{0}(#{1}): {2}",  e.GetType(), reference, e.Message);
            string tab="";
            for (var ce = e.InnerException;ce != null;ce = ce.InnerException) {
                tab = tab + "  ";
                log("{0}{1}({2}): {3}", tab, ce.GetType(),get_location(ce), ce.Message);
            }
            for (int i = 1;i < st.FrameCount;i++) {
                var f = st.GetFrame(i);
                var m = f.GetMethod();
                log("\t{0}:{1}:{2} {3}.{4}",
                    shortfilename(f.GetFileName()), f.GetFileLineNumber(), f.GetFileColumnNumber(),
                    m.ReflectedType.FullName, m.Name);
            }
            var rethrow = hook_rethrow;
            if (rethrow != null) rethrow(e, reference);
        }
    }

И везде в коде catch() {} замени на catch(Exception e) { AppHelper.exception(e, "unique_name"); }


U>никто не знает где че живет. информацию добываю по крупицам с очень большими проблемами.

U>задаешь простой вопрос на который можно ответить да-нет-не знаю
U>отклик день.

U>кто сталкивался? как вести себя? включить пофигизм?

U>по всемму коду раскиданы магические числа

Отредактировано 09.04.2025 14:42 kov_serg . Предыдущая версия .
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.