我正在执行我的a.out文件.执行后程序运行一段时间然后退出并显示以下消息:
**** stack smashing detected ***: ./a.out terminated*
*======= Backtrace: =========*
*/lib/tls/i686/cmov/libc.so.6(__fortify_fail+0x48)Aborted*
Run Code Online (Sandbox Code Playgroud)
可能的原因是什么?如何纠正?
我得到了一个应用程序TransactionTooLargeException的错误跟踪.不可重复,从未有过.在文档中说
Binder事务失败,因为它太大了.
在远程过程调用期间,调用的参数和返回值将作为存储在Binder事务缓冲区中的Parcel对象传输.如果参数或返回值太大而不适合事务缓冲区,则调用将失败并抛出TransactionTooLargeException.
...
当远程过程调用抛出TransactionTooLargeException时,有两种可能的结果.客户端无法将其请求发送到服务(很可能,如果参数太大而无法放入事务缓冲区中),或者服务无法将其响应发送回客户端(最有可能的话,如果返回值为太大而不适合事务缓冲区).
...
所以,好吧,我正在传递或接收超出某个未知限制的参数.但是哪里?
堆栈跟踪不会显示我的文件中的任何内容:
java.lang.RuntimeException: Adding window failed
at android.view.ViewRootImpl.setView(ViewRootImpl.java:548)
at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:406)
at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:320)
at android.view.WindowManagerImpl$CompatModeWrapper.addView(WindowManagerImpl.java:152)
at android.view.Window$LocalWindowManager.addView(Window.java:557)
at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:2897)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2245)
at android.app.ActivityThread.access$600(ActivityThread.java:139)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1262)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:4977)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
at dalvik.system.NativeStart.main(Native Method)
Caused by: android.os.TransactionTooLargeException
at android.os.BinderProxy.transact(Native Method)
at android.view.IWindowSession$Stub$Proxy.add(IWindowSession.java:569)
at android.view.ViewRootImpl.setView(ViewRootImpl.java:538)
... 16 more
android.os.TransactionTooLargeException
at android.os.BinderProxy.transact(Native Method)
at android.view.IWindowSession$Stub$Proxy.add(IWindowSession.java:569)
at android.view.ViewRootImpl.setView(ViewRootImpl.java:538)
at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:406)
at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:320)
at android.view.WindowManagerImpl$CompatModeWrapper.addView(WindowManagerImpl.java:152)
at android.view.Window$LocalWindowManager.addView(Window.java:557)
at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:2897)
at …Run Code Online (Sandbox Code Playgroud) 如果我有那个代码:
try:
some_method()
except Exception, e:
Run Code Online (Sandbox Code Playgroud)
如何获得此Exception值(我的意思是字符串表示)?
谢谢
我有一个循环开始for i in range(0, 100).通常它运行正常,但有时它会因网络状况而失败.目前我设置它以便在失败时,它将continue在except子句中(继续到下一个数字i).
我是否可以重新分配相同的数字i并再次运行循环的失败迭代?
我已经是一名专业软件工程师,已经有一年的时间了,已经获得了CS学位.我已经知道C++和C中有一段时间的断言,但直到最近才知道它们在C#和.NET中存在.
我们的生产代码不包含任何断言,我的问题是......
我应该在生产代码中开始使用Asserts吗?如果是这样,它的使用何时最合适?这样做会更有意义吗?
Debug.Assert(val != null);
Run Code Online (Sandbox Code Playgroud)
要么
if ( val == null )
throw new exception();
Run Code Online (Sandbox Code Playgroud) language-agnostic testing defensive-programming exception assertions
我可以在JavaScript中为用户定义的异常定义自定义类型吗?如果可以的话,我该怎么做?
我很高兴使用Newtonsoft JSON库.例如,我将从JObject.NET对象创建一个,在这种情况下是一个Exception实例(可能是也可能不是子类)
if (result is Exception)
var jobjectInstance = JObject.FromObject(result);
Run Code Online (Sandbox Code Playgroud)
现在我知道库可以将JSON文本(即字符串)反序列化为对象
// only works for text (string)
Exception exception = JsonConvert.DeserializeObject<Exception>(jsontext);
Run Code Online (Sandbox Code Playgroud)
但我要找的是:
// now i do already have an JObject instance
Exception exception = jobjectInstance.????
Run Code Online (Sandbox Code Playgroud)
很明显,我可以从JObject背面转到JSON文本,然后使用反序列化功能,但这似乎是我的倒退.
最近我在C#解决方案中遇到了以下异常:
错误2无法加载文件或程序集"Newtonsoft.Json,Version = 3.5.0.0,Culture = neutral,PublicKeyToken = b9a188c8922137c6"或其依赖项之一.参数不正确.(HRESULT异常:0x80070057(E_INVALIDARG))
这不依赖于我的代码或程序集的名称(如Newtonsoft.Json本例所示).
当我从解决方案中删除此dll时,编译器会在同一个异常中告诉另一个.所以我想在我的电脑上关闭/打开一些东西:)
更具体地说,当异常包含自定义对象时,这些自定义对象本身可以是自身可序列化的
举个例子:
public class MyException : Exception
{
private readonly string resourceName;
private readonly IList<string> validationErrors;
public MyException(string resourceName, IList<string> validationErrors)
{
this.resourceName = resourceName;
this.validationErrors = validationErrors;
}
public string ResourceName
{
get { return this.resourceName; }
}
public IList<string> ValidationErrors
{
get { return this.validationErrors; }
}
}
Run Code Online (Sandbox Code Playgroud)
如果此异常序列化和反序列化,则不会保留两个自定义属性(ResourceName和ValidationErrors).属性将返回null.
是否有用于实现自定义异常序列化的通用代码模式?
exception ×10
.net ×2
python ×2
android ×1
assertions ×1
c ×1
c# ×1
constructor ×1
java ×1
javascript ×1
json ×1
json.net ×1
loops ×1
stack ×1
testing ×1
try-except ×1