此代码是读取和写入ODBC连接的数据库的应用程序的一部分。它在数据库中创建一条记录,然后检查是否已成功创建记录,然后返回true。
我对控制流的理解如下:
command.ExecuteNonQuery()有记录表明,Invalid?Operation?Exception当“方法调用对该对象的当前状态无效”时,将引发。因此,如果发生这种情况,该try块的执行将停止,该finally块将被执行,然后return false;在底部执行。
但是,我的IDE声称该return false;代码不可访问。而且似乎是事实,我可以删除它,并且可以毫无抱怨地进行编译。但是,对我来说,似乎抛出上述异常的代码路径没有返回值。
private static bool createRecord(String table,
IDictionary<String,String> data,
System.Data.IDbConnection conn,
OdbcTransaction trans) {
[... some other code ...]
int returnValue = 0;
try {
command.CommandText = sb.ToString();
returnValue = command.ExecuteNonQuery();
return returnValue == 1;
} finally {
command.Dispose();
}
return false;
}
Run Code Online (Sandbox Code Playgroud)
我在这里理解的错误是什么?
我的Eclipse Juno SR1不知何故搞砸了.看来我有一个新区域,如果我正确解释它,它被称为"共享区域"(仅来自工具提示).我不能通过常规手段(iE关闭/隐藏)摆脱它.我现在打开的所有文件都在此共享区域中打开,而不是之前打开文件的区域.该区域与正常编辑区域不同,因为它不会到达相同的位置(右上角,菜单下方).
该区域只有最大化和最小化按钮.最大化它将使其最大化,这是预期的.最小化它实际上隐藏了它,但是打开现有文件会将其作为弹出文件列表上的弹出窗口返回.
我似乎没有找到我是如何激活这个功能的,我似乎无法在Eclipse帮助中找到任何激活指令(分别寻找"共享"和"区域"的帮助并不是真的有帮助).
我只是希望这个功能/窗口/透视图消失,让我像以前一样打开文件.有小费吗?
编辑:也许这个区域不叫"共享区域",这可能是错误的.如果没有,它似乎没有任何名称.它只是强制所有编辑者打开新文件,而不是打开它们通常打开的区域.我确定它的方式称为"共享区域"是通过最小化它,然后打开文件.它作为一种弹出窗口(如上所述)打开,并且有一个菜单栏,附有2个图标,"恢复"和"共享区域",这是预先选择的.
这是"停靠"在右边:

这是停靠在下面的区域:

该区域不能以它停靠到Eclipse的某些区域的方式停靠,而是在整个Eclipse窗口甚至在其外部延伸(拖动时).
我刚刚更详细地了解了这两个概念.我一直对RegEx很好,似乎我从未见过需要这两个零宽度断言.
我很确定我错了,但我不明白为什么需要这些结构.考虑这个例子:
Match a 'q' which is not followed by a 'u'.
Run Code Online (Sandbox Code Playgroud)
将输入2个字符串:
Iraq
quit
Run Code Online (Sandbox Code Playgroud)
使用负向前瞻,正则表达式如下所示:
q(?!u)
Run Code Online (Sandbox Code Playgroud)
没有它,它看起来像这样:
q[^u]
Run Code Online (Sandbox Code Playgroud)
对于给定的输入,这两个正则表达式给出相同的结果(即匹配Iraq但不是quit)(用perl测试).同样的想法适用于lookbehinds.
我错过了一个关键特性,使这些断言比经典语法更有价值吗?
琐碎的正则表达式问题(答案很可能是特定于Java的):
"#This is a comment in a file".matches("^#")
Run Code Online (Sandbox Code Playgroud)
这返回false.据我所知,^意味着它总是意味着什么并且#没有特殊意义,所以我^#在字符串的开头翻译为"A'#".哪个应该匹配.在Perl中它确实如此:
perl -e "print '#This is a comment'=~/^#/;"
Run Code Online (Sandbox Code Playgroud)
打印"1".所以我很确定答案是Java特有的.有人请赐教吗?
谢谢.
我MySQl Work-bench 2用来构建一个架构图,通过逆向工程数据库.然而,当我包括450张桌子时,桌子彼此重叠,对我来说实际上是不可能的,因为没有空间而重新排列.
该arrange选件Mysql work-bench也就不那么帮助.互联网上是否有可用的工具,也可以重新排列.或者我只需要做分而治之的方法.即部分选择部分表格并逐部分地构建图表.
我已经从Juno升级到Eclipse Kepler,我发现它Esc完全不同地处理密钥.
通常,使用Esc密钥我可以中止较小的视图/菜单,如自动完成:Alt+ Space打开自动完成下拉列表,Esc关闭它.
然而,有了开普勒,我发现Esc隐藏了一切.之前:

后:

Esc未映射到任何函数(它未在键下的配置中列出).这是现在的默认行为吗?有没有人有这个?
重置透视图不会更改此行为.我认为它可能与浮动的窗户风格有关.当我安装Kepler并启动它时,我不得不手动调整内部窗口(包含所有常用视图)的大小到屏幕大小.
编辑:如果我单击左上方小菜单栏中的小Java透视按钮,我可以返回UI.Esc所有视图的功能似乎相同(聚焦每个视图,然后按下每个视图Esc都相同).
我想使用带有HTML页面的irb进行一些小的正则表达式测试,我正试图解决这个问题.
但是,我们都知道并喜欢的HEREDOC语法在Ruby中似乎有所不同:
irb(main):140:0> text = <<-FUNUNU <p class="firstpara">
irb(main):141:0" FUNUNU
irb(main):142:0*
irb(main):143:0* puts text
SyntaxError: compile error
(irb):140: syntax error, unexpected kCLASS, expecting kDO or '{' or '('
text = <<-FUNUNU <p class="firstpara">
^
(irb):143: syntax error, unexpected tIDENTIFIER, expecting kDO or '{' or '('
from (irb):143
from :0
Run Code Online (Sandbox Code Playgroud)
它似乎抱怨字符串的内容,试图解释它.从我在HEREDOC语法中找到的所有文档中,都指出关键字之间的所有内容都应该是变量的一部分.但似乎并非如此.
除了HEREDOC字符串以HEREDOC指标的第二个表达式结尾之外,是否存在关于字符串内容的格式限制?
我正在从事Java开发.我最近遇到了必须遵守编码标准的情况:成员和方法排序,命名约定,修饰符序列.我正在考虑自动检查合规性的方法,或者生成某种进行重新排序的机制.
我们正在使用Eclipse开发,但该技术将是开放的.它可能的一种工作方式是生成外部构建器工具并将其添加到项目中.缺点是它会自动应用于所有文件,这可能会遇到遗留代码的问题,将错误计数推高到不再是合理的合理度量标准的程度.此外,它使代码审查变得更加困难,这是不希望的.
另一种方式是某种具有信息功能的解析器.我们可以在Jenkins中运行一个进程,这肯定会起作用,但这也意味着代码已经通过了审核,这对于代码合规性检查通常有点晚.
是否有建议甚至简单的方法将这些功能集成到IDE,源控制系统(Mercurial)甚至Jenkins中?这在其他地方如何执行?
我从外部源获取 CSV 格式的数据,并且数据不应写入文件,否则会导致许多我想避免的不同维护任务。我正在以字符串形式获取数据。
所以现在我想将数据解释为 CSV。python 模块csv适合于此,所以我正在使用它。
csv.reader但是,使用(或)构建 CSV 解析器dictreader需要数据支持迭代器。列表或读者已经可以做到这一点。但是,我的数据在引号字符串内包含换行符 ( \n)(这对于 CSV 格式来说完全没问题),并且还包含换行符作为记录结束指示符/行终止符。
如果我这样构建它:
csvreader = csv.reader(data.split('\n'))
Run Code Online (Sandbox Code Playgroud)
那么我已经通过将换行符解释为记录结束指示符来破坏有效的 CSV 格式,即使它们位于带引号的字符串内。对我来说,换行符的解释应该由 CSV 解析器完成,因为它知道包含 CSV 相关格式字符(如换行符)的引号字段。
我对包解析器的工作方式有误解吗csv?或者,当数据包含不指示记录结尾的换行符时,如何使用 CSV 解析器解析 CSV 类型字符串?
编辑1:为我的问题添加上下文可能并不明智,因为上下文似乎已经超越了我的实际问题/问题。澄清一下,我的问题不是从内存中解析 CSV。我StringIO已经找到了。使用时StringIO,所做的就是使用整个字符串/文件作为第一条记录。
编辑 2:也许示例数据会有所帮助。我的数据如下所示:
"value1";"value2";"value3
stillvalue3"
"value4";"value5";"value6"
Run Code Online (Sandbox Code Playgroud)
因此,在第一个记录的第三个条目中,我有一个换行符,它应该被解释为第一个记录中的第三个条目的一部分。
编辑3:我目前使用解析器的方式是这样的:
csvreader = csv.reader(StringIO(result), quotechar='"', delimiter=';', lineterminator='\n', escapechar='"')
Run Code Online (Sandbox Code Playgroud)
因为规范规定字段内的双引号 (") 由引号字符 ("") 转义,所以数据可能如下所示:
"value1";"value2";"value3
stillvalue3
a ""quote"" inside the quote"
"value4";"value5";"value6"
Run Code Online (Sandbox Code Playgroud)
似乎使用这些设置,StringIO 输入总是会生成一条记录,其中包含字符串中的所有数据。删除
escapechar='"'
Run Code Online (Sandbox Code Playgroud)
解决了这个问题,但是,我不支持引号内转义的双引号字符。所以我的问题的性质改变了。如果有人有想法,我会保持开放状态,并稍后接受马丁·埃文斯的回答。
可能重复:
静态初始化阻止
异常的"静态"方法声明
我想在不久的将来为OCJPC做准备,我遇到了一个我从未见过的构造.由于谷歌编程结构很难,我在这里问这个问题.代码片段:
class Geryon {
static { System.out.print("a"); }
{ System.out.print("b"); }
Geryon(String s) { System.out.print(s); }
public static void main(String[] args) {
new Geryon("c");
}
}
Run Code Online (Sandbox Code Playgroud)
我指的是theGeryon()方法头中的2个print语句,我希望返回类型.至于我能够谷歌,静态方法标题包括:
access-modifier keyword-"static" return-type|void method-name
Run Code Online (Sandbox Code Playgroud)
从测验问题的答案来看,代码不仅可以编译,还可以运行.任何人都可以指导我这个解释的来源吗?
我想使用Perl自动执行Excel以执行以下任务:
For a list of Excel .xls files, do the following:
Open the file
Set Format to CSV
Save the file under the original filename and directory, but replace the extension "xls" with "csv"
Close the file
End
Run Code Online (Sandbox Code Playgroud)
我找到了如何打开文件,甚至如何保存它们.我没有找到如何将fileformat/save更改为其他格式.不应弹出用户对话框,应完全自动化.我可以自己生成的Excel文件列表,参数化的"查找"或者"dir"就足够了.
我是Python的新手,我对某种异常方法的实现有疑问。这是代码(缩短):
class OurException(Exception):
"""User defined Exception"""
....
def get_single_value(command: str, connect_string: str, logger: Logger = None, custom_exception: Exception = OurException) -> Tuple[int, str]:
....
raise custom_exception("Errors in script\n\nexit .....")
Run Code Online (Sandbox Code Playgroud)
我默认设置为OurException的异常参数无法通过这种方式引发。但是,当我custom_exception将最后一行中的更改为Exception或时OurException,问题消失了。
在OOP上下文中,我想说的是,由于我已将参数定义为Exception,并且以这种方式可以调用Exception,因此可以保证它可以正常工作。但是,我的python解释器和IDE不一致(Pycharm,Python 3.7)。
某些事情没有按照我认为的方式工作,我对此很感兴趣。
eclipse ×3
java ×3
python ×2
python-3.x ×2
regex ×2
automation ×1
c# ×1
coding-style ×1
csv ×1
er-diagrams ×1
excel ×1
exception ×1
jenkins ×1
mercurial ×1
mysql ×1
perl ×1
ruby ×1
sql ×1