我可以嵌套try-catch块吗?例如:
void f()
{
try
{
//Some code
try
{
//Some code
}
catch(ExceptionA a)
{
//Some specific exception handling
}
//Some code
}
catch(...)
{
//Some exception handling
}
}//f
Run Code Online (Sandbox Code Playgroud) 嵌套的Try/Catch有一个你没有干净编码的信号吗?我想知道因为在我的catch中我正在调用另一个方法,如果失败,我会得到另一个运行时错误,所以我很想再次使用另一个try/catch将这些调用包装在catch中.我想知道这样做是否正常?
例如
catch (Exception ex)
{
transaction.VoidOrder(transactionID);
LogError(ex.ToString());
Response.Redirect("Checkout", false);
}
Run Code Online (Sandbox Code Playgroud)
所以VoidOrder甚至LogError方法都可以轰炸出来.现在当我调用时VoidOrder,我得到一个空引用,transactionID因为它调用一个BL方法,并且在BL方法中我重新抛出,所以我可以在上面的代码中在更高级别捕获它.但是,如果我再次在捕获物内投掷,那么我也需要抓住它.
我试图在内联/内联块锚链接上定位一个渐变,并让该渐变继承该父锚的宽度.问题是跨度要么继承锚的父级的整个宽度,要么只是继承的宽度.我无法让span元素正确继承宽度,同时保持锚点内联显示.
CSS
a { width: auto; display: inline-block; }
a span { background: url(../images/fade_h1.png); width: 100%; height: 12px; position: absolute; display: block; z-index: 3; }
Run Code Online (Sandbox Code Playgroud)
HTML
<a href="index.php"><span> </span>Index</a>
Run Code Online (Sandbox Code Playgroud) 我想尽可能地防止数据库连接被打开,因为这个代码将在密集使用的服务器上运行,这里的人已经告诉我应该尽快关闭数据库连接.
def do_something_that_needs_database ():
dbConnection = MySQLdb.connect(host=args['database_host'], user=args['database_user'], passwd=args['database_pass'], db=args['database_tabl'], cursorclass=MySQLdb.cursors.DictCursor)
dbCursor = dbConnection.cursor()
dbCursor.execute('SELECT COUNT(*) total FROM table')
row = dbCursor.fetchone()
if row['total'] == 0:
print 'error: table have no records'
dbCursor.execute('UPDATE table SET field="%s"', whatever_value)
return None
print 'table is ok'
dbCursor.execute('UPDATE table SET field="%s"', another_value)
# a lot more of workflow done here
dbConnection.close()
# even more stuff would come below
Run Code Online (Sandbox Code Playgroud)
我相信当桌子上没有行时会打开数据库连接,所以我仍然不确定它是如何工作的.
无论如何,也许这是糟糕的设计,因为我可以在每个小块之后打开和关闭数据库连接execute.当然,我可以在这种情况下添加一个close权利return......
但是,我怎么能总是正确关闭数据库,而不必担心,如果我有return,或raise,或continue …
这样的查询可能吗?MySQL给了我一个语法错误.具有嵌套选择的多个插入值...
INSERT INTO pv_indices_fields (index_id, veld_id)
VALUES
('1', SELECT id FROM pv_fields WHERE col1='76' AND col2='val1'),
('1', SELECT id FROM pv_fields WHERE col1='76' AND col2='val2')
Run Code Online (Sandbox Code Playgroud) 我有包含多个其他表的html表.我的问题是内部表继承了与外部表相同的规则.
有没有办法超越外围桌子的规则?我基本上想告诉内表:
嘿内表你的名字是"X".我希望你忘记你的外表及其规则.我希望你遵循这些其他具体规则.
有没有办法在HTML/CSS中实现这一点?例子?
我正在研究内部连接,而且我是一个老的SQL-92人.我想知道其含义,并了解它是如何工作的.所以这只是关于SQL连接的理论问题.这是...
SELECT * FROM -- Query 1
tbl1
INNER JOIN (
tbl2
INNER JOIN (
tbl3 INNER JOIN tbl4 ON tbl3.Col1 = tbl4.Col1
)
ON tbl2.col1 = tbl3.col2
)
ON tbl1.col1 = tbl3.col3
Run Code Online (Sandbox Code Playgroud)
......跟这个一样吗?
SELECT * FROM -- Query 2
tbl3
INNER JOIN tbl4 ON tbl3.col1 = tbl4.col1
INNER JOIN tbl2 ON tbl2.col1 = tbl3.col2
INNER JOIN tbl1 ON tbl1.col1 = tbl3.col3
Run Code Online (Sandbox Code Playgroud)
......或者这个(没有按逻辑分辨率排序)?
SELECT * FROM -- Query 3
tbl3
INNER JOIN tbl1 ON tbl1.col1 = tbl3.col3
INNER JOIN tbl2 …Run Code Online (Sandbox Code Playgroud) 当我在一个泛型结构中嵌套一个类并尝试实现相等运算符时,如下所示:
struct Outer<T> {
class Inner : Equatable {}
}
@infix func == <T>(lhs: Outer<T>.Inner, rhs: Outer<T>.Inner) -> Bool {
return lhs === rhs
}
Run Code Online (Sandbox Code Playgroud)
我尝试运行项目时收到以下错误:
While emitting IR SIL function @_TFCC4Test5Outer5InnerCU__fMS1_FT_S1_ for 'init' at .../Testing.swift:20:11
<unknown>:0: error: unable to execute command: Segmentation fault: 11
<unknown>:0: error: swift frontend command failed due to signal (use -v to see invocation)
Command /Applications/Xcode6-Beta.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/swift failed with exit code 254
Run Code Online (Sandbox Code Playgroud)
但是,当我在没有嵌套类的情况下做同样的事情时,它工作正常:
class MyClass : Equatable {}
@infix func == (lhs: MyClass, rhs: MyClass) -> …Run Code Online (Sandbox Code Playgroud) UPDATE
基于@BenSmith(/sf/users/14236001/BenSmith)的正确答案,我能够找到我的问题并发现我没有正确浏览我的JSON层次结构.这是工作代码:
// instantiate the bloodhound suggestion engine
var engine = new Bloodhound({
datumTokenizer: function (datum) {
return Bloodhound.tokenizers.whitespace(datum.title);
},
queryTokenizer: Bloodhound.tokenizers.whitespace,
prefetch: {
url: "SampleData.json",
filter: function (data) {
//console.log("data", data.response.songs)
return $.map(data.response.songs, function (song) {
return {
title: song.title,
artistName: song.artist_name
};
});
}
}
});
// initialize the bloodhound suggestion engine
engine.initialize();
// instantiate the typeahead UI
$('#prefetch .typeahead').typeahead(
{
hint: true,
highlight: true,
minLength: 1
},
{
name: 'engine',
displayKey: 'title',
source: engine.ttAdapter(),
templates: …Run Code Online (Sandbox Code Playgroud) 所以我的问题基本上和这里描述的一样,但是对于小组来说仍然没有答案.
我的映射:
{
"abstract": {
"properties": {
"summary": {
"type": "string"
}
}
},
"authors": {
"type": "nested",
"properties": {
"first_name": {
"type": "string"
},
"last_name": {
"type": "string"
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
我想对这两个领域进行全文搜索,可能是不平等的加权.我想到的查询,但不幸的是不起作用,将是这样的:
{
"query": {
"bool": {
"should": [{
"multi_match": {
"query": "higgs boson",
"fields": ["abstract.summary^5", "author.last_name^2"]
}
}]
}
}
}
Run Code Online (Sandbox Code Playgroud)
我没有得到authors字段的任何结果,因为它的嵌套映射.我也无法摆脱嵌套属性 - 我将它用于聚合.任何优雅的想法如何解决?