This might help: http://docs.julialang.org/en/release-0.3/manual/embedding/#throwing-julia-exceptions
On Wed, Dec 24, 2014 at 10:41 PM, 良无 <[email protected]> wrote: > In C or C++ code, I have a function: > > void funcname(...){ > ... > assert(0); > ... > } > > if I run `ccall((:funcname, libpath), Void, (...), ...)` in Julia , it > will terminate the Julia process. > > How can I replace assert() with other function to throw an error in Julia? > > > > ccall((:funcname, libpath), Void, (...), ...) > > ERROR: .... > > I am sorry that I can not make it clear, and I just come to Julia from the > R world. > > Thanks. ;-) > > I'm afraid I still don't get it. What do you want to do? >> >> >> On Dec 24, 2014, at 8:15 PM, 良无 <[email protected]> wrote: >> >> If you want to release an R package to CRAN, R Core will force you to >> check this by R CMD check: >> >> - Compiled code should never terminate the R process within which it is >> running. Thus C/C++ calls to assert/abort/exit, Fortran calls to STOP and >> so on must be avoided. Nor may R code call q(). >> >> >> Le mercredi 24 décembre 2014 à 08:36 -0800, 良无 a écrit : >>> > In my origin C++ code, I use assert(), but if I want to use this code >>> > in Julia, maybe I need to replace it with other functions. In R, I can >>> > use Rcpp::stop(). Is there any easy way to do it in Julia with C or C >>> > ++ code. >>> IIUC, you want to raise a Julia exception from C code, right? >>> >>> > And it seems that Julia does not have R CMD check like stuff yet. It >>> > does not check this kind of issue. >>> You mean, running a test suite? See >>> http://docs.julialang.org/en/latest/stdlib/test/ >>> >>> and how most packages do this, for example >>> https://github.com/JuliaStats/StatsBase.jl/tree/master/test >>> >>> >>> Regards >>> >>
