什么是我可以捕获SQLAlechmy异常的上层异常?
>>> from sqlalchemy import exc
>>> dir(exc)
['ArgumentError', 'CircularDependencyError', 'CompileError', 'ConcurrentModificationError', 'DBAPIError', 'DataError', 'DatabaseError', 'DisconnectionError', 'FlushError', 'IdentifierError', 'IntegrityError', 'InterfaceError', 'InternalError', 'InvalidRequestError', 'NoReferenceError', 'NoReferencedColumnError', 'NoReferencedTableError', 'NoSuchColumnError', 'NoSuchTableError', 'NotSupportedError', 'OperationalError', 'ProgrammingError', 'SADeprecationWarning', 'SAPendingDeprecationWarning', 'SAWarning', 'SQLAlchemyError', 'SQLError', 'TimeoutError', 'UnboundExecutionError', 'UnmappedColumnError', '__builtins__', '__doc__', '__file__', '__name__', '__package__']
>>>
Run Code Online (Sandbox Code Playgroud) 我发现这个解决方案AutoMapper - 将目标字符串设置为null实际上使它成为string.Empty
但它使用Initialize方法,因此所有映射行为都会沿着app改变:O
我只需要为特定的映射做这件事.
我有这个堆栈跟踪(部分)
Servlet.service() for servlet action threw exception
java.lang.NumberFormatException: For input string: "37648"
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:48)
at java.lang.Long.parseLong(Long.java:403)
at java.lang.Long.valueOf(Long.java:482)
at java.lang.Long.decode(Long.java:593)
Run Code Online (Sandbox Code Playgroud)
在我的一个日志文件中我不知道什么是真正的输入字符串.但是用户已经发生了相同的堆栈跟踪.
这样的堆栈跟踪怎么会发生?
我是Android新手,我正在努力弄清楚究竟有哪些工具可供我使用.我正在为Android 2.0.1开发,因为这是我的设备运行.
具体来说,我正在编写一个应用程序,我想将图像上传到Picasa相册.我几乎可以肯定这是支持的; 例如,内置(谷歌?)照片查看器有一个带有Picasa选项的"共享"按钮,甚至还有一小部分示例代码,包括代码段
[借用代码!如果这是违反规则的道歉..]
temp.setComponent(new ComponentName
("com.google.android.apps.uploader",
"com.google.android.apps.uploader.picasa.PicasaUploadActivity"));
startActivityForResult(temp, PICASA_INTENT)
Run Code Online (Sandbox Code Playgroud)
这看起来就像我想要的.
但是我找不到任何文件.事实上我很不清楚如何使用这种类型的资源.从Eclipse中,我是否需要包含另一个项目com.google.android.apps.uploader?如果是这样,我怎么得到它?我该如何加入?是否有任何可用的示例代码供我查看?
我想更改特定字符串索引的值,但不幸的是
string[4] = "a"
Run Code Online (Sandbox Code Playgroud)
引发a TypeError,因为字符串是不可变的("不支持项目赋值").
所以相反,我使用相当笨拙
string = string[:4] + "a" + string[4:]
Run Code Online (Sandbox Code Playgroud)
有没有更好的方法呢?
在Scala 2.8中,我有一个不可变的映射,每个键有多个值:
Map[T,Iterable[U]]
Run Code Online (Sandbox Code Playgroud)
有优越的代表性吗?其次,你将如何从中生成这样的地图
Iterable[(T,U)]
Run Code Online (Sandbox Code Playgroud)
?我目前正在使用:
def toGroupedMap[T,U](vals: Iterable[(T,U)]): Map[T,Iterable[U]] =
vals.groupBy(_._1).map({ case (s,it) => (s,it.map(_._2)) }).toMap
Run Code Online (Sandbox Code Playgroud)
哪个有效,但感觉笨重.
编辑:我应该指定我正在使用不可变数据.是否存在与MultiMap不可变的等价物?
我正在编写一个Python脚本,它通过一个目录并收集某些文件,但是有一些我想要排除的文件都是以相同的方式开始的.
示例代码:
for name in files:
if name != "doc1.html" and name != "doc2.html" and name != "doc3.html":
print name
Run Code Online (Sandbox Code Playgroud)
假设目录中有100个HTML文件都以'doc'.排除它们最简单的方法是什么?
对不起,我是Python的新手,我知道这可能是基本的.
提前致谢.
我们在安装SQL Server 2005(32位)时使用带有一些用户定义函数的程序集.我们使用如下脚本将其部署到生产中:
CREATE ASSEMBLY [Ourfunctions]
AUTHORIZATION [dbo]
FROM 0x4D5A9000...000
WITH PERMISSION_SET = SAFE
GO
CREATE FUNCTION [dbo].[GLOBAL_FormatString](@input [nvarchar](4000))
RETURNS [nvarchar](4000) WITH EXECUTE AS CALLER
AS
EXTERNAL NAME [Ourfunctions].[UserDefinedFunctions].[GLOBAL_FormatString]
GO
Run Code Online (Sandbox Code Playgroud)
我们从未遇到过这些功能的任何问题.现在,当我们尝试将其中一个服务器升级到x64时,我们在调用任何函数时遇到错误.样本堆栈跟踪:
System.Data.SqlClient.SqlException:尝试加载程序集ID为65549时,Microsoft .NET Framework中发生错误.服务器可能资源不足,或者程序集可能不受PERMISSION_SET = EXTERNAL_ACCESS或UNSAFE信任.再次运行查询,或检查文档以了解如何解决程序集信任问题.有关此错误的更多信息:System.IO.FileLoadException:无法加载文件或程序集'ourfunctions,Version = 0.0.0.0,Culture = neutral,PublicKeyToken = null'或其依赖项之一.给定的程序集名称或代码库无效.(来自HRESULT的异常:0x80131047)System.IO.FileLoadException:at System.Reflection.Assembly.nLoad(AssemblyName fileName,String codeBase,Evidence assemblySecurity,Assembly locationHint,StackCrawlMark&stackMark,Boolean throwOnFileNotFound,Boolean -snip-
错误提到权限集EXTERNAL_ACCESSAND UNSAFE而我们使用级别SAFE.
.dll文件是在目标平台设置为'Any CPU'的情况下构建的,当我们尝试从文件而不是varbinary语法加载dll时,我们得到相同的结果.我们已经在http://support.microsoft.com/kb/918040中尝试了这些建议
我们在32位机器上尝试了完全相同的程序,一切正常.它必须是x86和x64之间的差异.有任何想法吗?
解决方案:我们终于找到了解决方案 事实证明我们的程序集确实是32位编译的.在Visual Studio中,我们使用了目标"Any CPU",但在检查底层.csproj时,我发现了以下代码段:
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
...other elements...
<PlatformTarget>x86</PlatformTarget>
</PropertyGroup>
Run Code Online (Sandbox Code Playgroud)
所以我们的"任何CPU"目标实际上是构建一个x86程序集!Aaargh.我已经在颠覆中找回了这一行,但它在2006年首次登记已经存在.也许这是数据库项目的早期模板中的一个错误?
无论如何,谢谢你的帮助.我会接受拉斯的答案,因为我怀疑许多遇到同样问题的人最能得到他的回答.
我试图找出我的c ++代码中的问题,并在Sun机器上调试DDD.我需要按照我们的标准使用字符串.但是每当DDD遇到字符串变量时,它总是变为空.我想记住在SGI之前使用CVD时遇到同样的问题.
如果没有重新编写我的代码以删除字符串,还有什么我可以尝试/使用的吗?
如果在交互模式下使用Tcl,我在其中输入以下内容:
set list {1 2 3 4 5}
set sum 0
foreach el $list {
set sum [expr $sum + $element]
}
Run Code Online (Sandbox Code Playgroud)
它会显示一条非常简洁的信息:
can't read "element": no such variable
Run Code Online (Sandbox Code Playgroud)
但是当我用的时候
puts $errorInfo
Run Code Online (Sandbox Code Playgroud)
它将显示:
can't read "element": no such variable
while executing
"expr $sum + $element"
("foreach" body line 2)
invoked from within
"foreach el $list {
set sum [expr $sum + $element]
}"
Run Code Online (Sandbox Code Playgroud)
这就是我真正想要的.
问题是:在非交互模式下,当我想捕获此错误然后放入errorInfo以获得堆栈跟踪时,它只会显示简洁信息.如何获得如上所述的详细堆栈跟踪?非常感谢!
编辑添加更多细节
说我有以下代码:
proc test1 {} {
set list {1 2 3 4 5}
set sum …Run Code Online (Sandbox Code Playgroud) python ×3
.net ×2
string ×2
64-bit ×1
android ×1
automapper ×1
c# ×1
c++ ×1
ddd-debugger ×1
debugging ×1
exception ×1
immutability ×1
java ×1
mapping ×1
multimap ×1
picasa ×1
scala ×1
scala-2.8 ×1
solaris ×1
sql-server ×1
sqlalchemy ×1
sqlclr ×1
stack-trace ×1
tcl ×1
uploader ×1