Фильтры исключений теперь доступны в c # 6+. Вы можете сделать
try
{
WebId = new Guid(queryString["web"]);
}
catch (Exception ex) when(ex is FormatException || ex is OverflowException)
{
WebId = Guid.Empty;
}
В C # 7.0+ вы также можете комбинировать это с сопоставлением с образцом
try
{
await Task.WaitAll(tasks);
}
catch (Exception ex) when( ex is AggregateException ae &&
ae.InnerExceptions.Count > tasks.Count/2)
{
//More than half of the tasks failed maybe..?
}
Ruby имеет встроенную обработку CSV, которая должна сделать вывод статических файлов HTML довольно тривиальным.
См .:
На самом деле, Python тоже, так что это действительно вопрос личных предпочтений (или того, что вы уже настроили).
Python с Jinja2 .
import jinja
import csv
env= jinja.Environment()
env.loader= jinja.FileSystemLoader("some/directory")
template= env.get_template( "name" )
rdr= csv.reader( open("some.csv", "r" ) )
csv_data = [ row for row in rdr ]
print template.render( data=csv_data )
Оказывается, вы можете уйти, просто передав rdr
напрямую Jinja для разрыва .
Если шаблон выглядит так, он будет работать с широким спектром структур Python, включая итератор.
<table>
{% for row in data %}
<tr>
<td>{{ row.0 }}</td><td>{{ row.1 }}</td>
</tr>
{% endfor %}
</table>