Страницы

Поиск по вопросам

вторник, 18 февраля 2020 г.

Полный путь к точке выброса исключения

#java #stack


Как избавиться от "... 1 more" и увидеть полный стек вызовов, приведших к выбросу
исключения, если результатом выводится только это:

// other output data
myPack.DynamicFieldsException
    at myPack.DynamicFields.setField(DynamicFields.java:69)
    at myPack.DynamicFields.main(DynamicFields.java:99)
Caused by: java.lang.NullPointerException
    at myPack.DynamicFields.setField(DynamicFields.java:70)
    ... 1 more


Просьба в ответе показать конкретный пример, т.е. 

catch (MyException e) { ??? }


Какой код следует использовать вместо "???" чтобы получить желаемый результат (полный
вывод стека) ?

Сейчас используется:

catch (MyException e) { e.printStackTrace(); }


Такой вариант:

catch (NoSuchFieldException e) {
        for (StackTraceElement l : e.getStackTrace())
            System.out.println(l);
}


не показывает причину, заранее заданную как new Exception(new Exception()); или как
new MyException().initCause(new MyException()); 
    


Ответы

Ответ 1



Этот способ вывода информации об исключении, является способом по умолчанию. Вот так это выглядит в коде if (framesInCommon != 0) s.println(prefix + "\t... " + framesInCommon + " more"); Но вы всегда можете перехватить исключение и вывести его в нужном вам формате. Метод getStackTrace вернет вам массив типа StackTraceElement. В нем вы найдете всю необходимую информацию о стеке. try { throw new Exception(new NullPointerException()); } catch (Exception ex) { Throwable cause = ex; while (cause != null) { for(StackTraceElement element: cause.getStackTrace()) { System.out.println(element.toString()); } cause = cause.getCause(); if(cause != null) { System.out.println("Caused by " + cause); } } }

Как часто надо делать комит? [дубликат]

#контроль_версий


        
             
                
                    
                        
                            На этот вопрос уже даны ответы здесь:
                            
                        
                    
                
                        
                            Следует ли коммитить в git промежуточные копии когда
библиотека вообще не готова
                                
                                    (3 ответа)
                                
                        
                                Закрыт 2 года назад.
            
                    
когда заканчивается проект? на каждой задаче, либо раз в месяц?)
    


Ответы

Ответ 1



Коммиты не должны быть привязаны ко времени. К задачам тоже не верно. Желательно привязывать к фичам/работающему функционалу. Если речь про git, то рекомендую: На каждую задачу создавать новую ветку. Коммитить функционал по готовности. Как можно детерминированней. Не надо, безусловно, коммитить отдельно каждую функцию. Но, если выбирать между этим и заливкой всех изменений одним коммитом, то лучше первое.

Ответ 2



Зависит от требований тим лидера или заказчика. Если ты себе сеньёр, сам тим лидер и заказчик то сам и решай как часто делать. Можно использовать гит как репозиторий для хранения, тогда коммиты будут делаться редко. При коммите каждой задачи это будет выглядеть: git commit -am"пофиксил задание №777". Лично я люблю коммитить после успешного завершения задачи, то есть полность рабочая кнопка на сайте. Или полность рабочий интерфейс. Бывает что нужно сделать просто страховочный коммит и отправить на репу чтобы код не пропал в случае если жесткий диск накроется например (или твой ноутбук случайно выбросят в окно). Также если нашлись баги то можно писать коммит на каждый баг и писать в описание что мы там пофиксили. А еще можно писать коммиты после написания класса или функции а также написания скрипта. Рекомендую работать с гит через командную строку (терминал на линукс). А если нужно просмотреть код, то использовать прогу визуальный редактор для гит типа ГитКракен или любую другую. Также рекомендую битбакет.

Ответ 3



На каждой задаче. Иногда на каждой подзадаче, я каждый час иногда делаю.

Нажатие кнопки при нажатии кнопки

#c_sharp #visual_studio


Как сделать так, чтобы при нажатии на кнопку, одновременно нажималась вторая кнопка?
    


Ответы

Ответ 1



private void button1_Click(object sender, EventArgs e) { button2.PerformClick(); }

Ответ 2



Просто вызовите событие нажатия на кнопку по клику на другую: private void button1_Click(object sender, EventArgs args) { } private void button2_Click(object sender, EventArgs args) { button1_Click(sender, args); }

Можно ли в Qt из pro файла выдрать VERSION?

#cpp #qt #qt5


Можно ли в Qt из pro файла выдрать VERSION? И потом использовать его как константу
например.
    


Ответы

Ответ 1



Можно добавить VERSION в DEFINES. pro: VERSION = 1.2.3 DEFINES += VERSION=\\\"$$VERSION\\\" cpp: qDebug() << VERSION; вывод: 1.2.3

Как объединить ветки в git

#git #github


Я случайно создал новую ветку через checkout и закоммитился в нее. В этом коммите
все самые актуальные изменения, как мне перенести их в главную ветку, чтобы потом с
этой одной веткой работать? P.S. Сорри за нубский вопрос





Edit 1
    


Ответы

Ответ 1



Из главной ветки выполнить: git merge vasha-vetka

Аналоги background-image

#html #css #вёрстка




Верстаю сайт. Нужно поместить цифры 01 как на скриншоте. Есть ли какие-нибудь методики,
кроме использования background-image?
    


Ответы

Ответ 1



Пример *{ padding: 0; margin: 0; box-sizing: border-box; } body{ background: #fff; font-family: 'Segoe UI', sans-serif; font-size: 15px; line-height: 1.4; } .b-articles { counter-reset: countArticle; list-style-type: none; } .b-article { position: relative; padding: 15px; } .b-article:before { content: counter(countArticle, decimal-leading-zero) " "; counter-increment: countArticle; position: absolute; top: 0; width: 100%; font-size: 80px; color: rgba(0,0,0,0.1); z-index: -1; }

Title

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque justo dui, maximus eget venenatis quis, euismod at sem. Nulla sodales est nec elementum efficitur. Ut non egestas justo. Pellentesque habitant morbi tristique senectus et netus et malesuada

Title

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque justo dui, maximus eget venenatis quis, euismod at sem. Nulla sodales est nec elementum efficitur. Ut non egestas justo. Pellentesque habitant morbi tristique senectus et netus et malesuada

Title

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque justo dui, maximus eget venenatis quis, euismod at sem. Nulla sodales est nec elementum efficitur. Ut non egestas justo. Pellentesque habitant morbi tristique senectus et netus et malesuada



Ответ 2



Нужно разместить блок с цифрами под блоком с контентом. Для этого у блока с цифрами нужно установить position: absolute, а у блока с контентом position: relative. Пример: .section { position: relative; } .section:before { content: '01'; display: block; position: absolute; top: 0; width: 100%; font-size: 80px; opacity: .1 } .content { position: relative; z-index: 10; }

About us

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque justo dui, maximus eget venenatis quis, euismod at sem. Nulla sodales est nec elementum efficitur. Ut non egestas justo. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Cras eget dui vel magna tincidunt malesuada. Maecenas porttitor mauris mi, vehicula egestas justo consequat a. Quisque facilisis felis eget ultrices varius. Curabitur lacinia placerat consectetur. Vestibulum venenatis nunc in rhoncus malesuada. Phasellus vel pharetra elit. Vivamus vitae imperdiet lorem, non euismod ipsum.



Ответ 3



Добавить img тегом , а текст что идет поверх на position absolute. Как вариант.

Необходимо наполовину размыть блок

#html #css #css3 #вёрстка


Есть таблица с элементами последний из которых наполовину размыт, вот пример:


можно ли сделать подобный эффект средствами css?
    


Ответы

Ответ 1



Попробуйте добиться желаемого результата с помощью комбинации свойства opacity и свойства background: linear-gradient() body { background: url('http://lorempixel.com/output/nature-q-c-640-480-3.jpg'); max-width: 600px; } div { background: #fff; border-radius: 4px; padding: 15px; margin-bottom: 10px; } div.last { background: linear-gradient(0, transparent, #fff); opacity: .4; }
Content
Content